Safari 5.1 上的 VideoJS 进度事件始终为 0

Posted

技术标签:

【中文标题】Safari 5.1 上的 VideoJS 进度事件始终为 0【英文标题】:VideoJS progress event always 0 on Safari 5.1 【发布时间】:2014-02-22 17:50:36 【问题描述】:

在使用 VideoJS 播放视频时,我在 Safari 5.1 上遇到了这种奇怪的行为:

如果我收听进度事件:

var player = videojs('player_id',  
    preload: 'auto'
    techOrder: [ 'html5' ]
);

player.on( 'progress', on_progress );

player.ready( function()  player.play()  );

我只会在回调中得到值 0:

function on_progress( event ) 
    console.log( 'buffered', player.bufferedPercent() );
    // it will log always 0

注意事项:

我只能使用html5播放器

我正在使用 mp4/h264 视频并回退到 webm 和 ogv

代码适用于 Chrome、Firefox 和最新的 Safari

有什么想法吗?

【问题讨论】:

上面的代码(添加逗号的小修正)在 Safari 中对我来说很好用。这是一个有效的JSBin example。 对不起@MattMcClure,我忘了提到Safari 版本:它是5.1。而且您的示例在该浏览器中根本不起作用。不幸的是,即使是那个旧版本,我也需要让它工作。 我评论了您在下面发布的答案,但您对 Windows 版 Safari 不走运:( 【参考方案1】:

其实我试了好几个视频播放器,好像没有人支持Safari 5.1。

这些是我尝试过但没有运气的库:

http://www.videojs.com/

http://www.jwplayer.com/

http://jplayer.org/latest/demo-01-video/

http://flowplayer.org/

http://www.projekktor.com/

即使http://caniuse.com/#search=video 表示 Safari 5.1 支持 html5 视频,但事实并非如此。

【讨论】:

您指的是 Safari 5.1 for Windows 吗?这是一个已知问题(我知道这非常令人沮丧),但好消息是 Safari for Windows 是一个已死的项目,使用量很小而且正在减少。 @MattMcClure 不,不幸的是,我正在谈论适用于 OSX 的 Safari 5.1。即使在那里也不工作

以上是关于Safari 5.1 上的 VideoJS 进度事件始终为 0的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 5.1 - 仅 Safari 浏览器上的 iframe 的令牌不匹配问题

信管5.1进度管理规划与活动

显示视频的当前时间,而不是 videojs 上的剩余时间

Safari 5.1 基本身份验证注销问题

无法通过 Safari 5.1 网络播放音频

自定义video控件