如果我使用 MediaPlayer 的 setWakeMode 方法,它会自动释放吗?如果是,什么时候?
If I use MediaPlayer's setWakeMode method, is it released automatically and if so, when?
Android 的 MediaPlayer class 有一个漂亮的方法可以让你设置唤醒锁:
mPlayer.setWakeMode(getApplicationContext(), PowerManager.PARTIAL_WAKE_LOCK);
我的问题是:这个唤醒锁什么时候释放?当我调用
时它会自动发生吗
mPlayer.release();
还是我遗漏了什么?
这里是该方法的官方文档:MediaPlayer.setWakeMode
My question is: when is this wakelock released? Does it happen
automatically when I call
mPlayer.release();
是的。检查他们的来源,MediaPlayer.java。 release()
调用 stayAwake()
告诉是否 hold/release 唤醒锁。
private void stayAwake(boolean awake) {
if (mWakeLock != null) {
if (awake && !mWakeLock.isHeld()) {
mWakeLock.acquire();
} else if (!awake && mWakeLock.isHeld()) {
mWakeLock.release();
}
}
mStayAwake = awake;
updateSurfaceScreenOn();
}
public void release() {
stayAwake(false);
updateSurfaceScreenOn();
mOnPreparedListener = null;
mOnBufferingUpdateListener = null;
mOnCompletionListener = null;
mOnSeekCompleteListener = null;
mOnErrorListener = null;
mOnInfoListener = null;
mOnVideoSizeChangedListener = null;
mOnTimedTextListener = null;
if (mTimeProvider != null) {
mTimeProvider.close();
mTimeProvider = null;
}
mOnSubtitleDataListener = null;
_release();
}
private native void _release();
Android 的 MediaPlayer class 有一个漂亮的方法可以让你设置唤醒锁:
mPlayer.setWakeMode(getApplicationContext(), PowerManager.PARTIAL_WAKE_LOCK);
我的问题是:这个唤醒锁什么时候释放?当我调用
时它会自动发生吗mPlayer.release();
还是我遗漏了什么?
这里是该方法的官方文档:MediaPlayer.setWakeMode
My question is: when is this wakelock released? Does it happen automatically when I call
mPlayer.release();
是的。检查他们的来源,MediaPlayer.java。 release()
调用 stayAwake()
告诉是否 hold/release 唤醒锁。
private void stayAwake(boolean awake) {
if (mWakeLock != null) {
if (awake && !mWakeLock.isHeld()) {
mWakeLock.acquire();
} else if (!awake && mWakeLock.isHeld()) {
mWakeLock.release();
}
}
mStayAwake = awake;
updateSurfaceScreenOn();
}
public void release() {
stayAwake(false);
updateSurfaceScreenOn();
mOnPreparedListener = null;
mOnBufferingUpdateListener = null;
mOnCompletionListener = null;
mOnSeekCompleteListener = null;
mOnErrorListener = null;
mOnInfoListener = null;
mOnVideoSizeChangedListener = null;
mOnTimedTextListener = null;
if (mTimeProvider != null) {
mTimeProvider.close();
mTimeProvider = null;
}
mOnSubtitleDataListener = null;
_release();
}
private native void _release();