【发布时间】:2014-08-02 23:14:47
【问题描述】:
由于this Chrome issue 导致 jPlayer 1.6.0 使用 Flash 解决方案在 Chrome 36 中播放 mp3,我发现我的 mp3 无法通过 Flash 插件播放。通过 Firefox 30 和 IE 11 中的 HTML5 解决方案,mp3 可以正常播放。
注意我对修复播放以使用 HTML 5 而不是 Chrome 不感兴趣 - 最新版本的 jPlayer 可以做到这一点。相反,我想了解为什么无法通过 Flash 播放。
mp3 托管在 archive.org 上。
当我开始播放时,我观察到的是,在 Chrome 网络检查器中,我收到了一个状态为 Finished 的 mp3 URL 请求,然后又收到了一个对同一 URL 的请求,该 URL 永远处于 Status (pending) 状态。
我在 Firefox 中看到的 HTML5 解决方案是对 mp3 URL 的两个请求,它们都接收 302 重定向,然后是对实际 mp3 URL 的长时间运行请求,该请求成功流式传输 mp3 以供播放
jPlayer 检查器显示进度和 timeupdate 指标在 3 和 4 之间波动,并且 loadstart、play 和 waiting 都发生了,但位于 0。
所以我认为 Flash 播放器可能没有处理重定向。但我不确定如何解决此问题。
我创建了一个 JSFiddle http://jsfiddle.net/e4WnF/4/ 来演示这个问题。
我尝试使用 Wireshark 来弄清楚发生了什么。在使用 HTML 5 播放器的 Firefox 中,我看到导致 302 的 GET 请求,但我在 Chrome 下看不到此 GET 请求的迹象。
我已经通过迁移到 jPlayer 1.6.4 解决了这个问题,但这并没有改变我的 mp3 将无法在没有 HTML 5 音频支持的浏览器中工作的事实。
Thanks
【问题讨论】:
-
你能在 JSFiddle 和/或这个问题上发布一个完整的例子吗?你的页面总有一天会被修复,这个问题将无法帮助其他人。此外,Flash 通常遵循重定向...我发现使用 Fiddler 之类的工具最容易调试这些问题。在访问媒体的方式方面,Chrome 的开发者工具报告的情况略有不同。使用 Fiddler,您可以看到代理会请求什么。使用 Wireshark,您可以绝对确定通过网络传输的内容。
-
JSFiddle 和 Wireshark 结果添加到问题
标签: javascript flash google-chrome jplayer