我正在编写一个Android应用,试图在按下按钮时播放声音效果。重新启动手机后,第一次按下按钮时,不会播放效果。如果活动重新启动等,第二次运行正常。
我已经考虑到这可能是时间问题,因此,例如,我尝试延迟延迟play()调用。我还浏览了各种MediaPlayer文档,但调用似乎不是异步的。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mButton = findViewById(R.id.button);
mButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
MediaPlayer mp =
MediaPlayer.create(
getApplicationContext(), R.raw.positive);
Handler handler = new Handler();
if(!mp.isPlaying()) {
mp.start();
}
handler.postDelayed(
() -> mButton.setText("-" + mButton.getText()), 1000);
}
});
}
}
这是最简洁的形式,因此省略了各种mplayer.release()调用。系统重启后为什么没有声音?