Php 带有jPlayer的Grooveshark公共流媒体API

Php 带有jPlayer的Grooveshark公共流媒体API,php,html,streaming,jplayer,grooveshark,Php,Html,Streaming,Jplayer,Grooveshark,我能够使用Grooveshark的公共流媒体API从Grooveshark流媒体播放歌曲。 我在jPlayer(jPlayer.org)上使用这个,它正确地流式播放歌曲 但问题是,在Firefox中,歌曲的完整持续时间一直从00:00增加到歌曲的完整长度。基本上,完整歌曲持续时间是缓冲歌曲的数量 例如,长度为04:00的歌曲开始缓冲。现在,当缓冲歌曲的四分之一时(即01:00分钟),jPlayer将歌曲的持续时间显示为01:00分钟,而它应该是04:00分钟 截图:(歌曲播放总时长为05:06分

我能够使用Grooveshark的公共流媒体API从Grooveshark流媒体播放歌曲。 我在jPlayer(jPlayer.org)上使用这个,它正确地流式播放歌曲

但问题是,在Firefox中,歌曲的完整持续时间一直从00:00增加到歌曲的完整长度。基本上,完整歌曲持续时间是缓冲歌曲的数量

例如,长度为04:00的歌曲开始缓冲。现在,当缓冲歌曲的四分之一时(即01:00分钟),jPlayer将歌曲的持续时间显示为01:00分钟,而它应该是04:00分钟

截图:(歌曲播放总时长为05:06分钟)

在Google Chrome中(在最新版本中选中),歌曲的完整持续时间会显示出来,而jplayer显示,即使从歌曲开始,整个歌曲都会被缓冲

屏幕截图:(Chrome显示完整歌曲已缓冲,但仍在缓冲中)

jPlayer首先使用HTML5,如果HTML5不受支持,则返回flash。 Google Chrome支持使用HTML5播放mp3(Grooveshark stream是一种mp3)。 但是Firefox不支持HTML5中的mp3

所以很明显,Firefox使用的是flash,Chrome使用的是HTML5

现在我想解决的问题是:-

  • 在Firefox中获得完整的歌曲时长,并保持其他内容不变。
  • 在Chrome中保持歌曲的完整持续时间,并显示正确的歌曲缓冲量。
所有这些都应该是可能的,因为grooveshark网站本身也使用相同的stream.php文件

Grooveshark也提供了自己的flash播放器,但它没有足够的功能,特别是它不是HTML5


如果jPlayer无法做到这一点,那么请向我推荐一个更好的替代方案,它支持HTML5并适合流媒体播放。

您可以做的一件事,Grooveshark有时会做,就是将歌曲的当前长度除以加载的百分比。这将使您能够很好地估计文件的实际持续时间(可能不包括VBR文件)。您也可以尝试查看ID3标签。

查看类似标签issue@Baba我无法控制stream.php,因为它位于Grooveshark的末端。当我在Firebug中检查stream.php的头时,Content Length的头已经设置好了。谢谢James。我使用了这些方法,Javascript无法读取ID3标记,因为链接是跨域的。使用PHP,我只能通过curl将歌曲临时下载到本地目录,然后获取其ID3标记来获取ID3标记。这种方法不会长期有效。当尝试使用currentLength/percentLoaded方法时。这不会返回精确的值,并且相差0-6秒。GrooveSharkAPI中是否有任何方法可以返回歌曲的持续时间,或者将来是否有可能有这样的方法?好的,问题出在哪里了。我检查currentLength/percentLoaded方法的文件是VBR,正如您所说,它不适用于VBR文件。在Grooveshark.com上检查了同一首歌,并且那里的持续时间也显示错误。CBR文件工作正常。标记为正确答案。。。谢谢!如果Grooveshark API返回歌曲持续时间和其他歌曲信息以解决VBR文件的此问题,那就更好了。不幸的是,我们在后端没有歌曲持续时间。对于某些文件,我们有一个持续时间的估计值,以及何时可以使用该估计值。你应该从API中得到一些我们估计持续时间的文件。