如何通过MediaPlayer释放PARTIAL_WAKE_LOCK?

时间:2013-06-30 04:38:28

标签: android media-player wakelock

我正在使用以下内容为PARTIAL_WAKE_LOCK实例设置MediaPlayer

mMediaPlayer.setWakeMode(getApplicationContext(), PowerManager.PARTIAL_WAKE_LOCK);

我该如何发布?是在MediaPlayer.release()完成的(我在文档中看不到任何相关内容)?

1 个答案:

答案 0 :(得分:3)

它在MediaPlayer.release()MediaPlayer.stop()MediaPlayer.reset()上发布。它还发布了onCompletiononError

在此处查看MediaPlayer的来源:

http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/4.2.2_r1/android/media/MediaPlayer.java#MediaPlayer

看起来MediaPlayer.stayAwake()负责,这将释放唤醒锁。

private void stayAwake(boolean awake) {
    if (mWakeLock != null) {
        if (awake && !mWakeLock.isHeld()) {
            mWakeLock.acquire();
        } else if (!awake && mWakeLock.isHeld()) {
            mWakeLock.release();
        }
    }
    mStayAwake = awake;
    updateSurfaceScreenOn();
}

这是一种私有方法,但会在各种状态下调用,例如调用release() stayAwake(false)

只需搜索mWakeLockstayAwake(false),您就会看到。我还检查了早在1.5,它是相同的。