我有两个问题。我想在我的 Vimeo 播放器中禁用搜索功能。因此我写了这段代码:
(function($){
$(document).ready(function(){
var iframe = $('.media-vimeo-player')[0];
var player = $f(iframe);
var seeked = new Boolean(false);
player.addEvent('ready', function() {
player.addEvent('finish', onFinish);
player.addEvent('seek', onSeek);
player.addEvent('playProgress', onPlayProgress);
});
function onFinish(id) {
$('img').show();
}
function onSeek(data, id){
if(seeked == false){
seeked = true;
player.api('seekTo', old_time);
} else{
seeked = false;
}
}
function onPlayProgress(data, id){
if(Math.abs(data.seconds - old_time) <= 1.00){
old_time = data.seconds;
}
}
});
})(jQuery);
使用此代码,当前时间将保存在变量(“old_time”)中。如果用户搜索视频,播放器将跳回到最近的旧时间。在桌面上,这段代码运行得很好。但有时玩家会跳回开始而不是“old_time”位置。有人可以解释一下这种行为吗?
此外 - 这是更重要的问题 - 此代码不能完全在移动设备上运行。当我按下播放按钮时,视频会使用智能手机的默认视频播放器进入全屏模式。我可以在任何我想寻找的位置寻找一个位置,而玩家寻找到这个位置而不是跳回“旧时”位置。首先我认为会发生这种情况,因为 Vimeo Javascript API 不支持 HTML 移动播放器上的 seek 功能(参见https://developer.vimeo.com/player/js-api#event-compatibility),但后来我意识到,完成事件工作正常:完成视频后,浏览器关闭全屏模式并显示 img 元素,该元素在侧面加载时被隐藏。所以我想 seek 事件也应该起作用。有人可以告诉我我做错了什么吗?
非常感谢,丹尼尔