我在Android Studio中遇到问题。我正在制作一个声音板,我想在播放完毕后让我的MediaPlayer为空。我已经创建了一个完整的侦听器,但是当我将MediaPlayer设置为null时,在侦听器内部,工作室会发出一个警告:"值为null,分配给" mp"从未使用过。"
public void playUpToUs (View view) {
if (mp == null){
mp = MediaPlayer.create(this, R.raw.its_up_to_us);
mp.start();
mp.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
mp.release();
mp = null;
}
});
} else {
mp.release();
mp=null;
}
}
我还有其他四种方法,只是它们在点击时播放不同的声音。我可能犯了一个明显的错误,但如果有人能帮助我,我真的很感激。
答案 0 :(得分:3)
这是因为mp
方法中的onCompletion
参数会影响您尝试修改的mp
成员变量。你实际上是将参数设置为null,这在这里没用。您想要修改阴影实例。
使用不与成员变量冲突的其他变量名,或者使用外部类名作为限定符引用成员(例如MyActivity.this.mp
,如果您的外部类是MyActivity)。