大家好,我正在使用YT api制作一些视频,但我想在视频完成后创建一些函数。有什么方法可以找到视频有多长?
function onPlayerReady() {
function updateTime() {
var oldTime = videotime;
if(player && player.getCurrentTime) {
videotime = player.getCurrentTime();
}
if(videotime !== oldTime) {
onProgress(videotime);
}
}
timeupdater = setInterval(updateTime, 100);
}
// when the time changes, this will be called.
function onProgress(currentTime) {
console.log(videotime)
var halfway = (videotime / 2);
if(currentTime == halfway) {
counters("midpoint");
console.log("the video has reached halfway!");
}
}
这是我用来查看时间的
使用此处的"视频"列表 API。您需要部件属性的"内容详细信息"。然后它应该作为 contentDetails.duration 返回
嗯,有很多事情你必须改变。
- 删除 updateTime() 函数,这不是必需的。
- 不要像 oldTime 和 videotime 那样存储变量,要检查播放器状态只需
player.getPlayerState()
,1 表示"播放" - 在
onProgress()
中,您将计算的一半与视频时间(当前时间)除以 2 进行比较,这不是播放器持续时间。
最终和缩短的代码:
function onPlayerReady() {
timeupdater = setInterval(function() {
if (player.getPlayerState() == 1)
onProgress(player);
}, 100);
}
// when the time changes, this will be called.
function onProgress(p) {
if(p.getCurrentTime() > p.getDuration() / 2) {
// counters("midpoint");
console.log("the video has reached halfway!");
}
}
小提琴
希望对你有用:)