java - 从 onPause() 启动时 MediaPlayer 循环

标签 java android audio media-player onpause

我想在我的 Activity 的 onPause() 被调用时播放声音。为此,我使用以下代码:

@Override
public void onPause()
{
    super.onPause();

    MediaPlayer player = MediaPlayer.create(this, Settings.System.DEFAULT_RINGTONE_URI);
    player.setLooping(false);
    player.start();
}

这工作正常,但声音一直在播放。我尝试添加一个 OnCompletionListener,但这没有帮助(永远不会调用 Listener)。

我知道我不会在任何地方调用 player.stop()player.release(),但我什至不知道在哪里调用。

我现在的问题是:如何让声音只播放一次?有没有办法在应用程序进入后台之前等待媒体播放器完成?

最佳答案

好的,我找到了解决方案。

问题是,我使用的是 Settings.System.DEFAULT_RINGTONE_URI,它显然从不停止播放。

改用 Settings.System.DEFAULT_NOTIFICATION_URI 解决了这个问题。

关于java - 从 onPause() 启动时 MediaPlayer 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16436113/

相关文章:

java for 循环不工作

Android Image View Animation留下痕迹

php - 有没有一种简单的方法可以只显示html5音频播放器中的播放和停止按钮?

audio - 如何使用Garry的mod从文件夹中随机选择.wav/.mp3文件?

java - JSP、Java、Spring、迭代 HashMap 并从其值调用基本 getter 方法?

java - 找不到 Postgres JDBC maven 依赖项

java - JSON 数组到对象列表 : UnrecognizedPropertyException

android - Volley - 如何发送 DELETE 请求参数?

android - 使用混淆器进行测试的技巧

javascript - Web Audio API 和音频下载和保护