我想在调用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/

10-13 03:27