Javascript VideoJS-Safari 7.1,加载微调器不会在初始页面加载时消失
我正在使用VideoJS实现一个视频播放器。此视频播放器的两个关键功能是: a) 如果用户离开页面,请在他们返回或刷新时恢复视频 b) 包括HLS(h.264/mp4)支持,以根据连接提供更好的视频质量 用于保存和检索用户时间戳的API已经就位,使用,视频播放器在所有浏览器中都可以正常工作。以下代码用于初始化播放机并跳转到保存的时间:Javascript VideoJS-Safari 7.1,加载微调器不会在初始页面加载时消失,javascript,video,safari,video.js,http-live-streaming,Javascript,Video,Safari,Video.js,Http Live Streaming,我正在使用VideoJS实现一个视频播放器。此视频播放器的两个关键功能是: a) 如果用户离开页面,请在他们返回或刷新时恢复视频 b) 包括HLS(h.264/mp4)支持,以根据连接提供更好的视频质量 用于保存和检索用户时间戳的API已经就位,使用,视频播放器在所有浏览器中都可以正常工作。以下代码用于初始化播放机并跳转到保存的时间: videojs.options.flash.swf = '../video-js/video-js.swf'; v
videojs.options.flash.swf = '../video-js/video-js.swf';
var player = videojs(videoId);
supportHLS = videojs.Hls.isSupported();
player.ready(function() {
[[event listeners for media controls]]
this.on('seeked', function() { console.log('seeked');});
this.on('seeking',function() { console.log('seeking');});
var PLAYER_LOADED = 'loadedmetadata';
if(!supportHLS) { PLAYER_LOADED = 'canplay';}
this.one(PLAYER_LOADED, function() {
this.one('canplay', function() {
this.play();
});
this.currentTime(savedPosition);
lastViewed = savedPosition;
});
});
(迂回逻辑的原因:Chrome在加载新数据之前(搜索之后)播放视频时出现问题,这导致缓冲区中的数据出现许多问题。此外,如果您在“loadedmetadata”事件期间尝试此操作,Safari 7.1将断开)
然而,仍然有一个问题,具体到Safari。刷新页面时,加载微调器并不总是消失。检查日志和侦听器似乎表明“搜索”和“搜索”事件几乎同时发生,但顺序不同;问题总是在“搜索”第一个开火时出现,而在“搜索”第一个开火时永远不会出现。此外,播放视频后的任何搜索都会移除微调器,因此它必须由初始搜索引起
有趣的是,Safari在本机上支持HLS流媒体,但在这个播放器实现中始终会导致大多数问题。这是最后一个要解决的Safari bug,但尽管它很小,但仍然会对用户体验产生负面影响
是什么原因导致Safari触发这样的“搜索”和“搜索”事件?我能做些什么来解决这个问题,或者有没有一个更干净的解决方案来解决我想要完成的事情 你有没有想过这个?