我可以使用MediaPlayer接口成功收听音频流,但是如何获取流的属性,如当前比特率或流文本(许多流,如在线无线电包括当前正在播放的音轨)?
我试图找到这些信息,但是不能,如果这些东西可能在android开发网站上的某个地方列出了列出各种可用的'属性'?
答案 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以获取更多信息。