简体   繁体   English

Android MediaPlayer OnCompletion NullPointerException

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM