在我的应用程序中,我使用 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/