安卓:MediaPlayer,如何获取音频流的属性?

6
我可以使用MediaPlayer接口成功地收听音频流,但是如何获取流的属性,例如当前比特率或流文本(许多流,如在线广播,包括当前播放的曲目)?
我尝试查找这些信息,但无法找到。如果可能的话,是否有在Android开发者网站上列出各种可用“属性”的列表?
3个回答

3
首先,Android DEV站点是所有课程信息的站点 - 但有时很难找到需要的内容。在这种情况下,检查类的Java源代码会非常有帮助。
从快速查看SDK中,有一个onInfoListener接口,您可以在扩展MediaPlayer的类中实现它。这需要您实现public boolean onInfo(MediaPlayer mp, int what, int extra)http://developer.android.com/reference/android/media/MediaPlayer.OnInfoListener.html指出了what=MEDIA_INFO_METADATA_UPDATE
但是 - 在Google上进行检查会让人觉得从不调用它 :-/ 所以最终你只能自己解决...

3
据我理解,当流媒体出现滞后时,InfoListener 仅会收到通知。返回的“what”只是一个整数,没有太多的空间可以包含艺术家、标题等信息。 - rds

0

我可能把这件事想得比必要的还要复杂,但你可以使用Jlayer或其他MP3解码库来解码流的帧以获取所需的信息。不确定是否有一种只使用Android SDK就能完成此操作的方法。


-2

考虑到Shoutcast提供了一个轻量级的Web服务http://yp.shoutcast.com/Metadata_Info1.php?surl=<stream_url>,这个项目是无用的。绝对是杀鸡焉用牛刀,会产生很多依赖关系。 - rds

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接