[英]Android MediaPlayer OnCompletion NullPointerException
This is my first question. 这是我的第一个问题。 It is giving NullPointerException in media.release() line.
它在media.release()行中提供了NullPointerException。 Exact output is NullPointerException (@ProgressDetailRecyclerViewAdapter$5:onCompletion:308) {main}
确切的输出是NullPointerException(@ ProgressDetailRecyclerViewAdapter $ 5:onCompletion:308){main}
public void play(String fileURL) {
try {
mediaPlayer = new MediaPlayer();
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mediaPlayer.setDataSource(fileURL);
mediaPlayer.prepare();
mediaPlayer.start();
mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
mediaPlayer.release(); //line 308
mediaPlayer = null;
}
});
} catch (Exception e) {
e.printStackTrace();
}
}
Try this 尝试这个
mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
mp.release(); //line 308
mp= null;
}
});
The variable that gets passed to your onCompletion
method is named mp
, not mediaPlayer
. 传递给
onCompletion
方法的变量名为mp
,而不是mediaPlayer
。 It's possible your mediaPlayer
variable has been nulled since it was initialized, causing the error. 自初始化以来,您的
mediaPlayer
变量很可能已为空,从而导致错误。 Change the code to: 将代码更改为:
@Override
public void onCompletion(MediaPlayer mp) {
mp.release(); //line 308
mp = null;
}
@Override
public void onCompletion(MediaPlayer **mp**) {
**mediaPlayer**.release(); //line 308
mediaPlayer = null;
}
use the right object mp instead of mediaPlayer inside this method 在此方法中使用正确的对象mp而不是mediaPlayer
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.