繁体   English   中英

如何使用MediaPlayer获取流音频元数据?

[英]How to get streaming audio metadata with MediaPlayer?

我正在构建一个广播播放器,我需要实时从音频流中检索和更新元数据。

我曾尝试使用MediaMetadataRetriever但得到空值:

MediaMetadataRetriever mmr;

url = "http://stream0.wfmu.org/freeform-128k";

if (Build.VERSION.SDK_INT >= 14)
    mmr.setDataSource(url, new HashMap<String, String>());
else
    mmr.setDataSource(url);

String out = "";
out += mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_TITLE);
out += "\n";
out += mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_ARTIST);
out += "\n";
out += mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_ALBUM);
out += "\n";
out += mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_YEAR);
out += "\n";

怎么了?

我怎么知道元数据何时更改? 使用OnInfoListeneronInfo吗? 它处理我感兴趣的元数据(艺术家,标题...)还是曲目的类型或语言代码,例如MediaPlayer.TrackInfo

您尝试访问的元数据是通过SHOUTcast服务器(版本2)传递的。 MediaMetadataRetriever不支持SHOUTcast元数据检索,因此您将无法使用它。 据我所知,没有基于Java的库支持SHOUTcast版本2元数据的检索,因此您需要自己编写代码。 有关更多信息,请参见此处的指南。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM