1

我目前正在开发音乐流媒体/互联网广播 Android 应用程序,如果您能帮助我,我将不胜感激。提前致谢!

我可以播放音乐,但我不知道如何获取当前播放歌曲、专辑封面等信息。如果我能获得这些信息,它真的会对我的应用程序有所帮​​助。

我的问题是,我怎么知道或者从哪里可以得到关于当前正在播放的歌曲的信息?正如我注意到的那样,VLC 只需给出一个链接就可以做到。

这是vlc的截图。

在此处输入图像描述 在此处输入图像描述

以下是我尝试过的几个链接:

http://tar.stream.dev.al:9078/listen.pls

http://84.46.147.81:80/m1/mp3

http://stream.radioeger.hu:18000/listen.pls

http://95.110.186.253:8020/magic.mp3

4

2 回答 2

3

您可以通过 MediaMetadataRetriever 检索音频元数据,但 MediaMetadataRetriever 不适用于某些 Android 版本上的 URL。所以,使用FFmpegMediaMetadataRetriever作为解决方法,我建议尝试一下。

于 2014-08-05T05:02:58.063 回答
1

大多数广播流使用 http 流。压缩的音频数据通常与元数据交织在一起。因此,您将需要一种方法来实时处理 http 流,从而提取任何元数据。对于 Shoutcast,元数据是协议的一部分,以下是 streamripper 的示例:

http://streamripper.cvs.sourceforge.net/viewvc/streamripper/streamripper/ripper.c?revision=1.1.1.1&view=markup

对于经典的 HTTP 流,协议不包含元数据,但容器包含。在这种情况下,您还必须初步解码容器。这里又是一个来自 streamripper 的例子。这个使用 libvorbis 来检查容器并获取元数据。然而,它确实必须做一些魔术才能让它正确:

http://streamripper.cvs.sourceforge.net/viewvc/streamripper/sripper_1x/lib/ripogg.c?revision=1.22&view=markup

高温高压

于 2014-08-05T05:23:04.833 回答