VideoJS - Safari 7.1,加载微调器在初始页面加载时不会消失

时间:2014-10-30 19:04:32

标签: javascript video safari video.js hls

我正在使用VideoJS实现视频播放器。该视频播放器的两个关键功能是: a)如果用户离开页面,则在他们回来或刷新时恢复视频 b)包括HLS(h.264 / mp4)支持,以根据连接提供更好的视频质量。

用于保存和检索用户时间戳的API已经到位,并且使用excellent HLS plugin,视频播放器在所有浏览器中的效果几乎都符合预期。以下代码用于初始化播放器并跳转到保存的时间:

            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在新数据(搜索之后)加载之前播放视频时出现问题,这导致缓冲区中的数据出现了一些问题。此外,如果你使用Safari 7.1会破坏在“装载的元数据事件”

期间尝试过此操作

然而,还有一个问题,特别是Safari。刷新页面时,加载微调器并不会消失。检查日志和听众似乎表明正在寻找'并且'寻找'事件几乎同时发生,但顺序不同;每当“寻求”时,问题总会出现。首先发射,并且永远不会发生在寻找'是第一个。此外,播放视频后的任何搜索都会删除微调器,因此必须由初始搜索引起。

有趣的是,Safari本身支持HLS流式传输,但始终导致此播放器实现的大多数问题。这是最后一个解决的Safari漏洞,虽然它很小但它仍会对用户体验产生负面影响。

是什么导致Safari解雇了“寻找”的人。并且'寻找'像这样的事件乱序?我可以做些什么来解决它,或者是否有一个更清洁的解决方案来解决我想要完成的事情?

0 个答案:

没有答案