请选择视频源
获取视频中,请稍等...

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播放器相关推荐

  1. vue中使用HKPlayer播放器连接摄像头监控

    vue中使用HKPlayer播放器连接摄像头监控 效果图 可以控制摄像头移动 代码 <template><div style="user-select: none;&quo ...

  2. 关于,VUE中,阿里云播放器报错:Aliplayer is not defined。

    VUE中,阿里云播放器报错:Aliplayer is not defined.-Java-CSDN问答 感谢@iMingzhen大哥的解答!

  3. vue中使用video-player 播放rtmp格式的视频,播放前有一小段黑屏

    问题: 在vue项目中使用video-player 播放rtsp格式的视频的时候, 若视频渲染比较慢的时候, 会导致初始画面是黑屏的状态. 解决思路:监听播放状态,等数据加载完,页面可以渲染的时候 再 ...

  4. vue缓存服务器文件到本地,vue中,在本地缓存中读写数据的方法

    1.安装good-storage插件 cnpm i good-storage --save 2.读/写的方法 common/js/cache.js: import storage from 'good ...

  5. vue中使用Alipayer,播放rtmp,m3u8,mp4视频, vue-alipayer-v2.

    这是一个基于Alipayer 开发并封装于vue的播放器 由于项目需要接入rtmp协议的直播流,用于实时监控,看了网上的几个开源播放器,最后选择了阿里云的开源播放器,Alipayer,但是Alipay ...

  6. vue中使用pdf阅读器 --- pdf.js

    一.下载 https://mozilla.github.io/pdf.js/getting_started/#download 二.导入 三.使用 <template><div> ...

  7. html 直接播放wma,网页中插入音乐播放器WMA 方法有两种:object和embed

    网页中插入音乐播放器(详细,全面,加图) 通常有三种方法,使用普通的html方法有两种:object和embed.另一种是用flash编写的播放器,这种方法兼容性级好,但难度较大,较复杂. 其中obj ...

  8. vue中的请求拦截器与响应拦截器的使用

    之前讲到在项目中封装了axios,vue中对axios封装 就有了request.js这个文件,那么在这个文件中就可以写请求拦截器与响应拦截器. 请求拦截器: 请求拦截器的作用是在请求发送前进行一些操 ...

  9. Vue中使用Ckplayer播放器

    1.官方下载地址:http://www.ckplayer.com/down/ 下载最新的即可. 2.解压后可以看到 ckplayer这个目录,将它复制到项目中的static目录下. 3.在index. ...

  10. ckplayer html播放本地,本地化DPLAYER和CKPLAYER播放器自动下一集

    目录下的static/player/dplayer.html文件 查找 try{ 在以上代码前插入以下代码 dp.on('ended', function (){ if(parent.MacPlaye ...

最新文章

  1. python出现中文乱码 RuntimeWarning: Glyph 24180 missing from current font.解决方法
  2. Spark性能调优之资源分配
  3. ORACLE 外部表的简单使用
  4. 数论--费马小定理求逆元
  5. c# mongodb or查询_C# MongoDB 查询方法
  6. JavaScript 灯泡暗亮
  7. 【java】测试dubbo业务
  8. Android开发笔记(一百三十九)可定制可滑动的标签栏
  9. VS2008 + WDK 配置 及其编译错误
  10. 微型计算机输入输出的工业标准是7位,工业用微型计算机试题3
  11. 求最大值 最小值 下标 及格率 c语言,输入某班的C语言成绩,计算输出其及格率...
  12. C case和UVM TB的交互,tube_print, event_sync
  13. python打印N*N乘法表
  14. python安装mysqldb报错
  15. CentOS下Qt安装
  16. xiunobbs 4 mysql_xiunobbs
  17. 拉普拉斯矩阵(Laplace Matrix)与瑞利熵(Rayleigh quotient
  18. Button边框线隐藏
  19. xmind打不开的问题
  20. 【论文阅读】SCRDet++

热门文章

  1. 35、T5L 迪文屏C51开发之音频播放
  2. 避免选中页面文字或者内容时出现蓝色背景
  3. 信息搜集方法小结(持续更新)
  4. Linux 的7种文件类型及各颜色代表含义
  5. Android 修改wifi阀值,6种简单方法使WiFi网络提速
  6. HTML5-简易Canvas绘图板
  7. shopex mysql 数据库服务器_shopex数据库优化实例
  8. kears编写CNN网络,实现对mnist的识别
  9. 五步搞定Android开发环境部署——非常详细的Android开发环境搭建教程
  10. 计算机科学技术的广告语,赞美科技的句子-十大经典深入人心科技类广告语