媒体播放器错误Android

时间:2013-05-23 09:37:01

标签: android android-mediaplayer

在我的应用程序中,我使用MediaPlayer播放实时流链接。

这是我的代码

progress = ProgressDialog.show(ctx, "",
              "Loading..", true);

new Thread(new Runnable() {
              @Override
              public void run()
              {

                runOnUiThread(new Runnable() {
                  @Override
                  public void run()
                  {
                      mediaPlayer = new MediaPlayer();
                        try
                        {
                            mediaPlayer.reset();
                            mediaPlayer = new MediaPlayer();
                            mediaPlayer.setDataSource(radioUrl);
                            mediaPlayer.prepare();
                            mediaPlayer.start();

                        }catch (Exception e) {
                            e.printStackTrace();
                            // TODO: handle exception


                        }
                                progress.dismiss();
                  }
                });
              }
            }).start();

发生以下错误

 I/MediaPlayer(23237): mContext is null, can't getMirrorDisplayStatus!!!

以及我正在尝试播放的一些链接

 MediaPlayer Error (-38,0)

1 个答案:

答案 0 :(得分:4)

MediaPlayer Error (-38,0)尚未准备好播放从网址下载的声音时,您会收到此错误(mediaPlayer)。

一种解决方法是设置一个侦听器,它将在媒体播放器准备就绪时启动它。

mediaPlayer.setDataSource(radioUrl);
mediaPlayer.setOnPreparedListener(this);
mediaPlayer.prepareAsync();

@Override
public void onPrepared(MediaPlayer player) {
    player.start();
}

对于I/MediaPlayer(23237): mContext is null, can't getMirrorDisplayStatus!!!,您应该检查为什么mContext可以为空。使用您提供的代码,很难提供帮助。

修改

您还可以使用匿名类来实现此目的:

         MediaPlayer mediaPlayer = new MediaPlayer();
        mediaPlayer.setDataSource(radioUrl);
        mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {            
            @Override
            public void onPrepared(MediaPlayer mp) {
                mp.start();
            }
        });
    mediaPlayer.prepareAsync();