ckplayer html播放本地,vue中使用ckplayer播放器
export default {
name: '',
components: {},
props:{
sourceUrl:{
type:String,
default:''
},
height:{
type:String,
default:'550px'
}
},
data() {
return {
sourceUrls:this.sourceUrl,//如果不赋值,在加载组件时会报错
player: null,
loadingVideo:false,
waiting:false,
reloadPlayTime:null //当视频流获取超时定时器
}
},
computed: {},
watch: {
sourceUrl: {
handler(newVal, oldVal) {
if(this.reloadPlayTime) { //重新播放或者播放新视频时,清空定时器
clearTimeout(this.reloadPlayTime);
}
if( newVal && newVal !== oldVal ) {
this.waiting = true
this.sourceUrls = newVal
this.playVideo()
}
},
// 代表在wacth里声明了firstName这个方法之后立即先去执行handler方法
immediate: false
}
},
created() {},
methods: {
playVideo() {
window.player = null
document.querySelector("#video").innerHTML = ''
let _this = this;
this.$nextTick(()=>[
this.loadingVideo = false
])
/* 选择播放视频时,同时缓存该视频的相关点位信息*/
this.videoObject = {
width: '100%', // 宽度,也可以支持百分比(不过父元素宽度要有)
height: this.height, // 高度,也可以支持百分比
container: "#video", // “#”代表容器的ID,“.”或“”代表容器的class
variable: "player", // 该属性必需设置,值等于下面的new chplayer()的对象
autoplay: true, // 自动播放
loaded:'loadedHandler', // 监听播放器加载成功
live: true,
video:this.sourceUrls
}
window.player = new ckplayer(this.videoObject); // eslint-disable-line no-undef
//超时播放,重新点击播放
this.reloadPlayTime = setTimeout( ()=> {
this.$message.warning('获取视频超时,请重新播放...')
this.sourceUrls = ''
this.loadingVideo = false
this.waiting = false
this.disabledShot = true
this.$emit('playStatus', false)
window.player.videoClear()
document.querySelector("#video").innerHTML = ''
},30*1000)
window.fullHandler = function (){//flashplayer状态下会调用该函数监听全屏切换
console.log('已监听到全屏切换状态');
};
window.timeHandler=function (time){//flashplayer状态下为调用该函数监听当前播放时间
// console.log('当前播放时间:'+time);
};
window.pauseHandler=function (){
var metaData = window.player.getMetaDate();
var html = ''
html += '总时间:' + metaData['duration'] + '秒,';
html += '音量:' + metaData['volume'] + '(范围0-1),';
html += '播放器的宽度:' + metaData['width'] + 'px,';
html += '播放器的高度:' + metaData['height'] + 'px,';
html += '视频宽度:' + metaData['videoWidth'] + 'px,';
html += '视频高度:' + metaData['videoHeight'] + 'px,';
html += '视频原始宽度:' + metaData['streamWidth'] + 'px,';
html += '视频原始高度:' + metaData['streamHeight'] + 'px,';
html += '是否暂停状态:' + metaData['paused'];
};
window.playHandler=function (){//flashplayer状态下为调用该函数监听当前播放时间
// console.log('当前播放中...:');
var metaData = window.player.getMetaDate();
if( !metaData['paused']) {
console.log('playing...')
_this.waiting = false
_this.$emit('playStatus', true) // 当点位存在播放地址时,可以截图
//当正在播放时,取消定时器
clearTimeout(_this.reloadPlayTime);
}
};
window.loadedHandler=function (){
// console.log('已正确监听到播放器加载,loadedHandler');
window.player.addListener('full',fullHandler);
window.player.addListener('time',timeHandler);
window.player.addListener('play', playHandler);
window.player.addListener('pause', pauseHandler);
var metaData = window.player.getMetaDate();
var html = ''
html += '总时间:' + metaData['duration'] + '秒,';
html += '音量:' + metaData['volume'] + '(范围0-1),';
html += '播放器的宽度:' + metaData['width'] + 'px,';
html += '播放器的高度:' + metaData['height'] + 'px,';
html += '视频宽度:' + metaData['videoWidth'] + 'px,';
html += '视频高度:' + metaData['videoHeight'] + 'px,';
html += '视频原始宽度:' + metaData['streamWidth'] + 'px,';
html += '视频原始高度:' + metaData['streamHeight'] + 'px,';
html += '是否暂停状态:' + metaData['paused'];
console.log(html)
function playHandler () {
//正在播放
console.log('正在播放')
}
function pauseHandler () {
//正在播放
console.log('暂停播放')
}
function fullHandler () {
//正在播放
console.log('全屏中')
}
function timeHandler () {
//正在播放
console.log('播放时间')
}
}
},
},
beforeDestroy () {
clearTimeout(this.reloadPlayTime);
window.player = null //销毁播放器
}
}
.ali-player{
width: 100%;
.main {
box-sizing: border-box;
color: #FFFFFF;
.video-center {
position: relative;
.name{
position: absolute;
left: 50%;
top: -20px;
font-size: 18px;
-webkit-transform: translateX(-50%);
transform: translateX(-50%);
}
.tips{
position: absolute;
top: 50%;
left: 50%;
-webkit-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
z-index: 9999;
opacity: 0.79;
}
}
}
#video {
width: 100%;
height: 500px !important;
opacity: 0.79;
}
}
ckplayer html播放本地,vue中使用ckplayer播放器相关推荐
- vue中使用HKPlayer播放器连接摄像头监控
vue中使用HKPlayer播放器连接摄像头监控 效果图 可以控制摄像头移动 代码 <template><div style="user-select: none;&quo ...
- 关于,VUE中,阿里云播放器报错:Aliplayer is not defined。
VUE中,阿里云播放器报错:Aliplayer is not defined.-Java-CSDN问答 感谢@iMingzhen大哥的解答!
- vue中使用video-player 播放rtmp格式的视频,播放前有一小段黑屏
问题: 在vue项目中使用video-player 播放rtsp格式的视频的时候, 若视频渲染比较慢的时候, 会导致初始画面是黑屏的状态. 解决思路:监听播放状态,等数据加载完,页面可以渲染的时候 再 ...
- vue缓存服务器文件到本地,vue中,在本地缓存中读写数据的方法
1.安装good-storage插件 cnpm i good-storage --save 2.读/写的方法 common/js/cache.js: import storage from 'good ...
- vue中使用Alipayer,播放rtmp,m3u8,mp4视频, vue-alipayer-v2.
这是一个基于Alipayer 开发并封装于vue的播放器 由于项目需要接入rtmp协议的直播流,用于实时监控,看了网上的几个开源播放器,最后选择了阿里云的开源播放器,Alipayer,但是Alipay ...
- vue中使用pdf阅读器 --- pdf.js
一.下载 https://mozilla.github.io/pdf.js/getting_started/#download 二.导入 三.使用 <template><div> ...
- html 直接播放wma,网页中插入音乐播放器WMA 方法有两种:object和embed
网页中插入音乐播放器(详细,全面,加图) 通常有三种方法,使用普通的html方法有两种:object和embed.另一种是用flash编写的播放器,这种方法兼容性级好,但难度较大,较复杂. 其中obj ...
- vue中的请求拦截器与响应拦截器的使用
之前讲到在项目中封装了axios,vue中对axios封装 就有了request.js这个文件,那么在这个文件中就可以写请求拦截器与响应拦截器. 请求拦截器: 请求拦截器的作用是在请求发送前进行一些操 ...
- Vue中使用Ckplayer播放器
1.官方下载地址:http://www.ckplayer.com/down/ 下载最新的即可. 2.解压后可以看到 ckplayer这个目录,将它复制到项目中的static目录下. 3.在index. ...
- ckplayer html播放本地,本地化DPLAYER和CKPLAYER播放器自动下一集
目录下的static/player/dplayer.html文件 查找 try{ 在以上代码前插入以下代码 dp.on('ended', function (){ if(parent.MacPlaye ...
最新文章
- python出现中文乱码 RuntimeWarning: Glyph 24180 missing from current font.解决方法
- Spark性能调优之资源分配
- ORACLE 外部表的简单使用
- 数论--费马小定理求逆元
- c# mongodb or查询_C# MongoDB 查询方法
- JavaScript 灯泡暗亮
- 【java】测试dubbo业务
- Android开发笔记(一百三十九)可定制可滑动的标签栏
- VS2008 + WDK 配置 及其编译错误
- 微型计算机输入输出的工业标准是7位,工业用微型计算机试题3
- 求最大值 最小值 下标 及格率 c语言,输入某班的C语言成绩,计算输出其及格率...
- C case和UVM TB的交互,tube_print, event_sync
- python打印N*N乘法表
- python安装mysqldb报错
- CentOS下Qt安装
- xiunobbs 4 mysql_xiunobbs
- 拉普拉斯矩阵(Laplace Matrix)与瑞利熵(Rayleigh quotient
- Button边框线隐藏
- xmind打不开的问题
- 【论文阅读】SCRDet++