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

时间:2011-01-30 12:19:40

标签: android properties stream media-player

我可以使用MediaPlayer接口成功收听音频流,但是如何获取流的属性,如当前比特率或流文本(许多流,如在线无线电包括当前正在播放的音轨)?

我试图找到这些信息,但是不能,如果这些东西可能在android开发网站上的某个地方列出了列出各种可用的'属性'?

3 个答案:

答案 0 :(得分: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表示有一个= MEDIA_INFO_METADATA_UPDATE

但是 - 检查谷歌是否会让人觉得这个永远不会被调用: - / 所以最终你自己就是那个......

答案 1 :(得分:0)

我可能会比实际需要更难,但您可以使用Jlayer或其他一些MP3解码库解码流的帧以获取您正在寻找的信息。不确定是否有办法只使用Android sdk。

答案 2 :(得分:-2)

如果您的流是shoutcast / icecast流,那么您可以使用http://code.google.com/p/streamscraper/处的实用程序类来提取包含歌曲标题的元数据。 或者,您可以构建自己的元数据提取器。请查看http://www.smackfu.com/stuff/programming/shoutcast.html以获取更多信息。