Reputation: 33
This is my first question. It is giving NullPointerException in media.release() line. Exact output is 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();
}
}
Upvotes: 1
Views: 496
Reputation: 3729
@Override
public void onCompletion(MediaPlayer **mp**) {
**mediaPlayer**.release(); //line 308
mediaPlayer = null;
}
use the right object mp instead of mediaPlayer inside this method
Upvotes: 1
Reputation: 2936
The variable that gets passed to your onCompletion
method is named mp
, not mediaPlayer
. It's possible your mediaPlayer
variable has been nulled since it was initialized, causing the error. Change the code to:
@Override
public void onCompletion(MediaPlayer mp) {
mp.release(); //line 308
mp = null;
}
Upvotes: 0
Reputation: 11457
Try this
mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
mp.release(); //line 308
mp= null;
}
});
Upvotes: 0