MediaMetaDataReceiver.setDataSource Android上的IllegalArgumentException

时间:2015-03-04 17:59:34

标签: java android illegalargumentexception

我想从“http://usa8-vn.mixstream.net:8138”流式传输时获取歌曲标题和名称。流是工作但我不知道为什么当我想用MediaMetaDataReceiver获得歌曲标题时,它总是说IllegalArgumentException。我已经使用了这段代码https://stackoverflow.com/a/10973324/2565280,但不知何故它对我不起作用。

MediaMetadataRetriever metaRetriever = new MediaMetadataRetriever();
metaRetreiver.setDataSource("http://usa8-vn.mixstream.net:8138");
String artist =  metaRetriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_ARTIST);
String title = metaRetriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_TITLE);

第2行总是出错,并说IllegalArgumentException,但是当我使用MediaPlayer的链接时,它就像这样工作

MediaPlayer mediaPlayer = new MediaPlayer();
mediaPlayer.setDataSource("http://usa8-vn.mixstream.net:8138");

请帮帮我,谢谢。

1 个答案:

答案 0 :(得分:3)

如果我没弄错的话,就会出现与MediaMetadataRetriever相关的错误。

您可以尝试查看是否:

metaRetreiver.setDataSource("http://usa8-vn.mixstream.net:8138", new HashMap<String, String>());

解决了您的问题。