【问题标题】:Android: MediaPlayer, How to get properties of an audio stream?Android:MediaPlayer,如何获取音频流的属性?
【发布时间】:2011-01-30 12:19:40
【问题描述】:

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

我试图找到这些信息但找不到,如果这些东西可能在 android 开发网站的某个地方有一个列表,其中列出了各种可用的“属性”?

【问题讨论】:

    标签: android properties stream media-player


    【解决方案1】:

    首先,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

    但是 - 检查谷歌会给出这个永远不会被调用的想法:-/ 所以最终你只能靠自己了......

    【讨论】:

    • 据我了解,InfoListener 仅在流媒体滞后时才会收到通知。 “返回的内容”只是一个整数,艺术家、标题等的位置并不多。
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

      • 这个项目没用,考虑到shoutcast在http://yp.shoutcast.com/Metadata_Info1.php?surl=<stream_url>提供了一个轻量级的网络服务。绝对矫枉过正并创建许多依赖项
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-16
      • 1970-01-01
      • 1970-01-01
      • 2017-10-04
      • 1970-01-01
      相关资源
      最近更新 更多