如何检测声音文件何时完成?

Ema*_*een 45 android while-loop

我在广播接收器活动中使用此代码播放声音文件:

notification.sound = Uri.parse("android.resource://emad.app/raw/seven_chimes");
Run Code Online (Sandbox Code Playgroud)

我想检测这个文件何时播放完毕.

我尝试了这样的循环,但我认为这对媒体播放器只有好处,因为即使我确定声音文件仍在播放,它总是=假:

/*
 * Stay here until the chime sound is finished.
 */
   while (manager.isMusicActive()){
   }
Run Code Online (Sandbox Code Playgroud)

你能告诉我应该用什么代替manager.isMusicActive()吗?

Ron*_*nny 107

您可以使用MediaPlayer类并添加一个完成侦听器,以便在声音播放完毕时激活

MediaPlayer mp = MediaPlayer.create(this,Uri.parse("android.resource://emad.app/raw/seven_chimes"));

mp.setOnCompletionListener(new OnCompletionListener() {

    @Override
    public void onCompletion(MediaPlayer mp) {
        performOnEnd();
    }

});

mp.start();
Run Code Online (Sandbox Code Playgroud)

  • 嗨Emad,你需要添加导入android.media.MediaPlayer.OnCompletionListener; 所以它会认出来的. (4认同)