调试jPlayer Flash mp3播放

Debugging jPlayer Flash mp3 playback

本文关键字:播放 mp3 Flash jPlayer 调试      更新时间:2023-09-26

由于这个Chrome问题导致jPlayer 1.6.0在Chrome 36中使用Flash解决方案播放mp3,我发现我的mp3不能通过Flash插件播放。mp3通过HTML5解决方案在Firefox 30和IE 11中播放很好。

注意我不感兴趣的修复播放使用HTML 5而不是Chrome -最新版本的jPlayer做到了。相反,我想了解为什么通过Flash播放不工作。

mp3存放在archive.org上。

当我开始播放时,我观察到的是,在Chrome网络检查器中,我得到一个状态完成的mp3 URL请求,然后是另一个处于状态(待处理)的相同URL请求。

我在Firefox中从HTML5解决方案中看到的是对mp3 URL的两个请求都收到302重定向,然后是对实际mp3 URL的长时间运行请求,该请求成功地流式播放mp3

jPlayer检查器显示进度和时间更新指标在3和4之间切换,加载启动,播放和等待都发生了,但却停留在0。

所以我认为Flash播放器可能没有处理重定向。但是我不确定如何解决这个问题。

我创建了一个JSFiddle http://jsfiddle.net/e4WnF/4/来演示这个问题。

我已经尝试使用Wireshark来找出发生了什么。虽然Firefox使用HTML 5播放器,我看到GET请求的结果是302,但我在Chrome下没有看到这个GET请求的迹象。

我已经通过移动到jPlayer 1.6.4解决了这个问题,但这并不能改变我的mp3在没有HTML 5音频支持的浏览器中无法工作的事实。

Thanks

这是一个影响很多人的问题,它是由最近的Chrome更改引起的,现在已经回滚了,但是直到它过滤到更新,你需要做一些改变。在jPlayer群组中,至少有10个线程和一个关于这个问题的jPlayer bug ticket。还有一个关于这个的Chrome bug tracker ticket。

事实证明,jPlayer和Soundcloud等其他网站实际上并没有坚持RFC 3003规范,当Chrome收紧他们的代码时,这就破坏了它。Chrome现在已经回滚了这个更改,但是直到过滤通过,你可以从github下载最新的jplayer代码,或者在jquery.jplayer.js文件的第696行周围立即进行以下更改,使其看起来像这样:

mp3: {
    //codec: 'audio/mpeg; codecs="mp3"',
    codec: 'audio/mpeg',
    flashCanPlay: true,
    media: 'audio'
},

请让我知道这是否解决了问题。