在我的应用程序中,我使用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)
答案 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();