我可以使用公共流 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 并且适合流式传输。