如何查看正在播放Media Player的广播音频的标题/艺术家?

时间:2014-03-17 17:27:58

标签: android audio android-mediaplayer radio mediastore

我制作了一个连接收音机并使用MediaPlayer播放音频的程序。我想打印艺术家,歌曲标题......但我不知道如何。

我尝试使用MediaStore.Audio.Media.ARTIST这样做,但它没有用,因为我无法链接"使用MediaStore的uri,所以当我使用这个命令时,它在我的SD目标中搜索音乐。

之后,我尝试使用MetaMediadataRetriever执行此操作:

private void play() {
 textView.setText("Conectando con la radio......");
 Uri myUri = Uri.parse("http://streamingraddios.com:9169");
 try {
     if (mp == null) {
         this.mp = new MediaPlayer();
     } else {
         mp.stop();
         mp.reset();
     }

     mp.setDataSource(this, myUri); 
     MediaMetadataRetriever mmr = new MediaMetadataRetriever(); 
    // mmr.setDataSource(this, myUri);          
     //String ton= mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_TITLE);
     mp.setAudioStreamType(AudioManager.STREAM_MUSIC);
     mp.setOnPreparedListener(this);
     mp.setOnBufferingUpdateListener(this);

     mp.setOnErrorListener(this);
     mp.prepareAsync();

     Log.d(TAG, "LoadClip Done");
 } catch (Throwable t) {
     Log.d(TAG, t.toString());
 }

}
@Override
public void onPrepared(MediaPlayer mp) {
    mp.start();
    textView.setText("");
    textView.setText("Hola: " +ton);
}

但是当使用变量mediametadataretriever连接URI时,应用程序不再响应(不关闭应用程序)。我认为问题是"背景",有谁知道它是什么?我不知道如何将这个变量理论化。 有人可以帮帮我吗?非常感谢你。

1 个答案:

答案 0 :(得分:0)

尝试

MediaMetadataRetriever mmr = new MediaMetadataRetriever();
mmr.setDataSource(myContext, myUri)

String albumName = mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_ALBUM);

需要api 10但