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

标签 android while-loop

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

notification.sound = Uri.parse("android.resource://emad.app/raw/seven_chimes");

我想检测此文件何时播放完毕。

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

/*
 * Stay here until the chime sound is finished.
 */
   while (manager.isMusicActive()){
   }

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

最佳答案

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

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();

关于android - 您如何检测声音文件何时完成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7367997/

相关文章:

android - 将Firebase添加到flutter项目中,破坏了项目

Java异常处理和循环继续

python - 你能覆盖python中的循环名称吗

bash 脚本 : commands after the loop are not executed if the loop condition is false

android - 是否应该在较新的 android 平台上检查文本到语音引擎的存在?

android - 如何使用 Android 数据绑定(bind)库制作粗体文本

android - onKeyUp 不处理硬键盘的 Enter

android - @aar with transitive = true 是什么意思

C++:虽然循环不会以 NULL 终止,我是否遗漏了什么?

php - 合并 MySQL 结果中的多个产品属性