javascript - 调试 jPlayer Flash mp3 播放

标签 javascript flash google-chrome jplayer

this Chrome issue导致 jPlayer 1.6.0 使用 Flash 解决方案在 Chrome 36 中播放 mp3,我发现我的 mp3 无法通过 Flash 插件播放。通过 HTML5 解决方案,MP3 在 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 来弄清楚发生了什么。在使用 HTML 5 播放器的 Firefox 中,我看到了导致 302 的 GET 请求,但在 Chrome 下我没有看到此 GET 请求的迹象。

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

Thanks

最佳答案

这是一个影响很多人的问题,它是由最近的 Chrome 更改引起的,该更改现已回滚,但是在该更改渗透到更新之前,您需要进行一些更改。在jPlayer group至少有十个线程和一个 jplayer bug ticket关于这个问题。还有一个Chrome bug tracker ticket关于这个。

事实证明,jPlayer 和 Soundcloud 等其他网站实际上并没有遵守 RFC 3003 规范,当 Chrome 收紧他们的代码时,这打破了它。 Chrome 现在已经回滚了此更改,但在该更改通过之前,您可以从 github 下载最新的 jplayer 代码,或者立即对第 696 行附近的 jquery.jplayer.js 文件进行以下更改,使其如下所示:

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

如果这能解决问题,请告诉我。

关于javascript - 调试 jPlayer Flash mp3 播放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25100213/

相关文章:

javascript - 使用nodejs和socket io在flash中保存png图像

javascript - jQuery FileUpload 发送的文件数据在哪里?

javascript - 按钮变成颜色 css

javascript - reducer 看不到一项特定操作 [react-redux]

flash - 移动影片剪辑时的视觉错误

html - 基于 Flash 的网站有什么不好?

html - 谷歌浏览器上的边框。 (CSS) ¿如何删除?

html - Chrome 中出现奇怪的黑 block

google-chrome - 将 Dart VM 作为 Chrome NaCl 插件提供有多难?

javascript - 在应用程序配置 angular.js 的自定义提供程序中使用 $http