【发布时间】:2013-02-12 08:04:36
【问题描述】:
我可以使用公共流 API 从 Grooveshark 流式传输歌曲。 我将它与 jPlayer(jplayer.org) 一起使用,它可以正确播放歌曲。
但问题是 在 Firefox 中(查看最新版本)歌曲的完整持续时间不断从 00:00 增加到完整的歌曲长度。基本上完整的歌曲持续时间是歌曲缓冲的数量。
例如长度为 04:00 分钟的歌曲开始缓冲。现在,当它缓冲了歌曲的四分之一(即 01:00 分钟)时,jPlayer 将歌曲持续时间显示为 01:00 分钟,而它应该是 04:00 分钟。
屏幕截图:(播放的歌曲总长度为 05:06 分钟)
http://i.stack.imgur.com/wzxPx.png
在谷歌浏览器中(检查最新版本)显示歌曲的完整时长,jplayer 显示整首歌曲甚至从歌曲开始就被缓冲.
截图:(Chrome显示整首歌曲已缓冲但仍在缓冲中)
http://i.stack.imgur.com/PSkct.png
jPlayer 首先使用 HTML5,如果 HTML5 不支持,则回退到 Flash。 Google Chrome 支持使用 HTML5 播放 mp3(Grooveshark 流是一种 mp3)。 但是 Firefox 不支持 HTML5 中的 mp3。
所以很明显 Firefox 使用的是 flash 而 Chrome 使用的是 HTML5。
现在我要解决的问题是:-
- 在 Firefox 中获得完整的歌曲时长,并保持其他所有内容不变。
- 在 Chrome 中保留歌曲的完整时长并显示缓冲的正确歌曲量。
所有这些都应该是可能的,因为grooveshark网站本身也使用相同的stream.php文件。
Grooveshark 也提供了自己的 Flash 播放器,但它没有足够的功能,特别是它不是 HTML5。
如果 jPlayer 无法实现,请向我推荐一个更好的替代方案,它支持 HTML5 并且适合流式传输。
【问题讨论】:
-
@Baba 我无法控制 stream.php,因为它位于 Grooveshark 的末尾。当我在 Firebug 中检查 stream.php 的标头时,已经设置了 Content-Length 的标头。
标签: php html streaming jplayer grooveshark