Java MediaMetaDataReceiver.setDataSource上的IllegalArgumentException

Java MediaMetaDataReceiver.setDataSource上的IllegalArgumentException,java,android,illegalargumentexception,Java,Android,Illegalargumentexception,我想在从“”流媒体时获取歌曲标题和名称。流是工作的,但我不知道为什么当我想用MediaMetaDataReceiver获得歌曲标题时,它总是说IllegalArgumentException。我已经在使用这个代码了,但不知怎么的,它不适合我 MediaMetadataRetriever metaRetriever = new MediaMetadataRetriever(); metaRetreiver.setDataSource("http://usa8-vn.mixstream.net:81

我想在从“”流媒体时获取歌曲标题和名称。流是工作的,但我不知道为什么当我想用MediaMetaDataReceiver获得歌曲标题时,它总是说IllegalArgumentException。我已经在使用这个代码了,但不知怎么的,它不适合我

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");

请帮助我,谢谢。

如果我没有弄错的话,有一个与MediaMetadataRetriever相关的bug

您可以尝试看看是否:

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

修复您的问题。

如果我没有弄错的话,有一个与MediaMetadataRetriever相关的错误

您可以尝试看看是否:

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

解决您的问题。

是的,现在没有错误,很抱歉英语不好。但为什么它在元数据中总是说null,而在元数据标题中总是说null呢。我检查了当前歌曲,它不是空的,但当我提取元数据时,它说空的。。。明白了吗?HashMap应该包含标题。把东西放进去,再试一次。别忘了接受答案:)什么样的标题??请给我举个例子。是的,现在没有错,对不起,英语不好。但为什么它在元数据中总是说null,而在元数据标题中总是说null呢。我检查了当前歌曲,它不是空的,但当我提取元数据时,它说空的。。。明白了吗?HashMap应该包含标题。把东西放进去,再试一次。别忘了接受答案:)什么样的标题??请给我举个例子