首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果我使用MediaPlayer的setWakeMode方法,它是自动释放的吗?如果是的话,何时释放?

如果我使用MediaPlayer的setWakeMode方法,它是自动释放的吗?如果是的话,何时释放?
EN

Stack Overflow用户
提问于 2015-08-20 05:34:52
回答 1查看 1.4K关注 0票数 3

Android的MediaPlayer类有一个很好的方法,可以让您设置一个觉醒:

代码语言:javascript
复制
mPlayer.setWakeMode(getApplicationContext(), PowerManager.PARTIAL_WAKE_LOCK);

我的问题是:这个觉醒是什么时候释放的?我打电话的时候会自动发生吗?

代码语言:javascript
复制
mPlayer.release();

还是我漏掉了什么?

下面是该方法的官方文档:MediaPlayer.setWakeMode

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-20 06:02:17

我的问题是:这个觉醒是什么时候释放的?我打电话的时候会自动发生吗? mPlayer.release();

是的。检查他们的来源,MediaPlayer.javarelease()调用stayAwake(),它告诉是否持有/释放一个唤醒。

代码语言:javascript
复制
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();
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32110262

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档