javascript - 获取用户在 jwplayer 中观看视频的总时间
问题描述
我想从 jwplayer 捕获视频的总播放/观看时间。使用下面的示例代码。
jwplayer("player").setup({
"playlist": [
{
"sources": [
{
"default": false,
"file": 'https://content.jwplatform.com/manifests/yp34SRmf.m3u8',
"label": "0",
"type": "hls",
"preload": "meta"
}
]
}
],
"height": "240",
"width": "100%",
"aspectratio": "16:9",
"stretching": "uniform",
"controls": true,
"autostart": true
});
jwplayer("player").on('time', function (e) {
var count = this.getPosition();
});
你能帮我做这件事吗?
解决方案
您可以通过这个简单的逻辑获得视频播放的总毫秒数
// In ms
var totalPlayBackTime = 0
setInterval(
function() {
if(player.getState() == "playing") {
totalPlayBackTime = totalPlayBackTime + 500
}
},
500
);
此处代码将每 500 毫秒执行一次,以检查播放器是否正在播放。如果是,则在总播放时间上增加 500 毫秒。读取totalPlayBackTime
变量以获取播放时间。
这样您就不必依赖 jwplayer 事件
注意:我没有用广告测试过这个。
推荐阅读
- reactjs - React 获取先前的状态
- angular - 离子路由器出口导致 Angular 中已经存在的路由器出口出现问题
- ios - 如果对象的键不同,如何编写模型结构
- python - 在python中访问下载的excel文件的一张表
- amazon-web-services - s3 - 调用 HeadObject 操作时发生错误 (403):禁止
- java - 从 xsd 文件生成的 JAXB 类
- asp.net-core - 在 AWS LambdaEntryPoint / APIGatewayProxyFunction 终止之前执行代码
- scala - 分离头文件和合并部分文件
- flutter - Flutter:从 DataTableSource 中的方法更新 PaginatedDataTable?
- mysql - 获取mariadb/mysql中按分数表排序的N条前后记录