【问题标题】:How to see the tittle/artist of a radio audio that is being played with MediaPlayer?如何查看正在使用媒体播放器播放的广播音频的标题/艺术家?
【发布时间】:2014-04-23 01:26:45
【问题描述】:

我制作了一个连接到收音机并使用 MediaPlayer 播放其音频的程序。我想打印艺术家、歌名……但我不知道怎么做。

我尝试使用 MediaStore.Audio.Media.ARTIST 执行此操作,但它不起作用,因为我无法将 uri 与 MediaStore“链接”,所以当我使用此命令时,它会在我的 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 时,应用程序不再响应(不关闭应用程序)。我认为问题是“上下文”,有谁知道它是什么?我不知道如何初始化这个变量。 任何人都可以帮助我吗?非常感谢。

【问题讨论】:

  • 您到底尝试了什么(任何代码 sn-p)但不起作用?

标签: android audio android-mediaplayer radio mediastore


【解决方案1】:

试试

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

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

等等

需要 api 10

【讨论】:

  • 这表示它包含在 api5 中,但没有记录在案 stackoverflow.com/questions/9713652/…
  • 我只有这个类,所以我的上下文是“this”(ActivityMain),这是非常罕见的,因为当我初始化我的变量 MediaPlayer 并且我使用了命令 mediaplayer.setDataSource(this, myUri) 它工作正常且没有错误。
  • 是的,如果那是活动,那么调用它将传递上下文。很高兴它成功了,你能标记为正确吗
  • 不!对不起,我解释错了。使用 MediaPlayer 变量,命令 mediaplayer.setDatasource(this, myuri) 可以正常工作,但是使用我的 MediaMetaDataRetriever 变量,命令 mediametadataretriever.setDataSource(this, myuri) 不起作用......(我不知道如何解决这个问题)。你要我粘贴我的 ActivityMain 的所有代码吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-17
  • 2014-01-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多