获取用户在 jwplayer 中观看视频的总时间
Get User watched total time of a video in jwplayer
我想从 jwplayer 中捕获视频的总 Played/watched 时间。使用下面的示例代码。
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事件了
注意:我还没有用广告测试过这个。
最好的方法是依靠 JW Player 事件,特别是 on('time') 事件。
let totalTimeWatched = 0;
let previousPosition = 0;
jwplayer().on('time', (e) => {
const { position } = e;
totalTimeWatched += (position - previousPosition);
previousPosition = position;
});
如果您也想为广告计算时间,您可以使用 adTime
事件,该事件还有一个 position
属性.
编辑
为了解决寻找行为,您可以使用额外的侦听器,on('seek')
来重置 previousPosition
。见下文:
let totalTimeWatched = 0;
let previousPosition = 0;
jwplayer().on('time', (e) => {
const { position } = e;
totalTimeWatched += (position - previousPosition);
previousPosition = position;
});
jwplayer().on('seek', (e) => {
previousPosition = e.offset;
});
你为什么不使用 e.currentTime?
我想从 jwplayer 中捕获视频的总 Played/watched 时间。使用下面的示例代码。
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事件了
注意:我还没有用广告测试过这个。
最好的方法是依靠 JW Player 事件,特别是 on('time') 事件。
let totalTimeWatched = 0;
let previousPosition = 0;
jwplayer().on('time', (e) => {
const { position } = e;
totalTimeWatched += (position - previousPosition);
previousPosition = position;
});
如果您也想为广告计算时间,您可以使用 adTime
事件,该事件还有一个 position
属性.
编辑
为了解决寻找行为,您可以使用额外的侦听器,on('seek')
来重置 previousPosition
。见下文:
let totalTimeWatched = 0;
let previousPosition = 0;
jwplayer().on('time', (e) => {
const { position } = e;
totalTimeWatched += (position - previousPosition);
previousPosition = position;
});
jwplayer().on('seek', (e) => {
previousPosition = e.offset;
});
你为什么不使用 e.currentTime?