android - Android 媒体播放器错误

标签 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)

最佳答案

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

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

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可以为null。根据您提供的代码,将很难提供帮助。

编辑:

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

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

关于android - Android 媒体播放器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16710421/

相关文章:

android - 我想阻止我的音乐播放器应用程序在每次启动时扫描目录中的音频文件。我怎样才能做到这一点?

Android:以编程方式获取设备名称

android - 如何创建自定义 map 播放器,我们可以在其中将缩放级别增加到 21 以上

android - mediaPlayer 停止时触发事件

android - Xamarin Android Player - 无法播放此视频

安卓 : How to detect that the selected audio is being played in Android Studio

android - Android 上的 Kotlin - 是否有最低 API 级别要求?

java - 应用程序停止工作 : Could not find class 'android.graphics.drawable.RippleDrawable'

java - 将数据从 Android 发送到笔记本电脑

java - 在多个 fragment 类中使用 MediaPlayer 的一个实例