MediaMetaDataReceiver.setDataSource Android 上的 IllegalArgumentException

use*_*280 0 java android illegalargumentexception

我想从“ http://usa8-vn.mixstream.net:8138 ”流式传输时获取歌曲名称和名称。流是有效的,但我不知道为什么当我想用 MediaMetaDataReceiver 获取歌曲标题时,它总是说 IllegalArgumentException。我已经在使用此代码/sf/answers/768132711/但不知何故它对我不起作用。

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);
Run Code Online (Sandbox Code Playgroud)

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

MediaPlayer mediaPlayer = new MediaPlayer();
mediaPlayer.setDataSource("http://usa8-vn.mixstream.net:8138");
Run Code Online (Sandbox Code Playgroud)

请帮帮我,谢谢。

小智 6

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

你可以试试看:

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

解决您的问题。