videojs获取视频播放进度和浏览时长

需求:

1:获取视频播放进度

2:获取用户浏览时长

实现注意事项

1:调用video.js  video.css

2:视频播放时计时,停止、缓冲时、关闭网页时浏览时长计算停止,并将数据上传到服务器

html
 

<!DOCTYPE html>
<html lang="en">
<head>

    <title>Video.js | HTML5 Video Player</title>
    <link href="http://vjs.zencdn.net/7.0/video-js.min.css" rel="stylesheet">
    <script src="http://vjs.zencdn.net/7.0/video.min.js"></script>
	<script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></script>
</head>
<body>

  <video id="demo-video" class="video-js vjs-default-skin" controls preload="none" width="640" height="264" poster="http://vjs.zencdn.net/v/oceans.png" data-setup="{}">
    <source id="demo" src="http://vjs.zencdn.net/v/oceans.mp4" type="video/mp4">
  </video>
	观看时长:<input type="text" id="aa" value="0">
	当前时间:<input type="text" id="bb" value="0">
</body>

</html>

js代码

<script>
$(document).ready(function () {
    var options = {
    };       
    var player = videojs('demo-video', options, function onPlayerReady() {
        var time1;
        var t1 = 0;
        function aa() {
            t1 += 0.1;
            document.getElementById('aa').value = t1;
            console.log('aa-' + t1);
            var currentTime = document.getElementById("demo-video").firstChild.currentTime;
            document.getElementById('bb').value = currentTime;
            console.log('当前播放时间'+ currentTime);            
        }
        //结束和暂时时清除定时器,并向后台发送数据
        this.on('ended', function () {
            console.log('结束播放');
            window.clearInterval(time1);
            countTime();   //向后台发数据
        });
        this.on('pause', function () {
            console.log('暂停播放');
            window.clearInterval(time1);
            countTime();  //向后台发数据
        });
        this.on('ended', function() {//播放结束
            console.log("播放结束");
            window.clearInterval(time1);
        });
        this.on('waiting', function () {
            console.log('等待加载');
            window.clearInterval(time1);
            countTime();   //向后台发数据
          })
        //开始播放视频时,设置一个定时器,每100毫秒调用一次aa(),观看时长加1秒
        this.on('playing', function () {
            console.log('开始播放');
            time1 = setInterval(function () {
                aa();
            }, 100);                               
        });     
    });
    //直接关闭页面,并向后台发送数据
    if(window.addEventListener){
        window.addEventListener("beforeunload",countTime,false);
    }else{
        window.attachEvent("onbeforeunload",countTime);
    }
})
 
function countTime() {
            var sTime = $("#aa").val();
            var currentTime = $("#bb").val();
            console.log(sTime+'=='+currentTime+'发往后台');            
        }
</script>

  • 5
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
### 回答1: 您可以使用Video.js的事件监听器来获取视频播放状态的回调函数。以下是一些常用的事件监听器: - `play`: 当视频开始播放时触发。 - `pause`: 当视频暂停时触发。 - `ended`: 当视频播放结束时触发。 - `timeupdate`: 当视频播放时间更新时触发。 您可以使用以下代码来监听这些事件: ```javascript var player = videojs('my-video'); player.on('play', function() { console.log('视频开始播放'); }); player.on('pause', function() { console.log('视频暂停'); }); player.on('ended', function() { console.log('视频播放结束'); }); player.on('timeupdate', function() { console.log('视频播放时间更新'); }); ``` 您可以根据自己的需要,选择适当的事件监听器来获取视频播放状态的回调函数。 ### 回答2: videojs是一个流行的HTML5视频播放器,它提供了一些回调函数来获取视频播放状态。 1. `play`:这个回调函数在视频开始播放时被触发。你可以在其中执行一些操作,比如显示播放按钮变为暂停按钮。 2. `pause`:这个回调函数在视频暂停时被触发。你可以在其中执行一些操作,比如显示暂停按钮变为播放按钮。 3. `ended`:这个回调函数在视频播放结束时被触发。你可以在其中执行一些操作,比如重新设置视频播放时间为0。 4. `timeupdate`:这个回调函数在视频播放进度更新时被触发。你可以在其中获取视频的当前播放时间,并进行一些操作,比如更新进度条的位置。 除了上述的回调函数,videojs还提供了一些方法来获取视频播放状态。比如: 1. `currentTime()`:这个方法返回视频的当前播放时间。你可以通过调用这个方法获取视频的当前播放时间。 2. `duration()`:这个方法返回视频的总播放时间。你可以通过调用这个方法获取视频的总播放时间。 通过以上回调函数和方法,你可以轻松地获取视频播放状态并执行相应的操作。比如在`play`回调函数中可以显示暂停按钮,而在`pause`回调函数中可以显示播放按钮,以此来与用户的操作状态进行同步。 ### 回答3: videojs是一个开源的HTML5视频播放器库,可以通过JavaScript来控制视频播放状态。要获取视频播放状态的回调函数,可以使用videojs提供的事件监听器来实现。 首先,需要在HTML页面中嵌入video标签,并引入videojs的库文件。然后在JavaScript中初始化videojs播放器对象,如下所示: ``` var player = videojs('my-video'); ``` 然后,可以使用player对象的on方法来监听不同类型的事件。要获取视频播放状态,可以监听playing和ended事件。当视频播放时,会触发playing事件,而当视频播放结束时,会触发ended事件。可以通过回调函数来处理这些事件。 示例代码如下: ``` var player = videojs('my-video'); // 监听playing事件 player.on('playing', function() { console.log('视频正在播放'); }); // 监听ended事件 player.on('ended', function() { console.log('视频播放结束'); }); ``` 上述代码中,使用console.log输出了不同的播放状态。根据实际需求可以根据需要来处理不同的播放状态,例如显示或隐藏一些UI元素、更改视频的样式等等。 总结起来,要获取视频播放状态的回调函数,可以使用videojs的事件监听器来监听playing和ended事件,并通过回调函数来处理不同的播放状态。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值