声音效果在首次播放时被忽略

时间:2019-04-15 20:07:16

标签: java android audio-player

我正在编写一个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()调用。系统重启后为什么没有声音?

0 个答案:

没有答案