Android Audio实战——音频焦点监听(十)

        前面音频焦点申请时,在 MediaFocusControl 中有一个重要的函数 notifyExtFocusPolicyFocusRequest_syncAf(),其中的注释信息是 对外的焦点策略,其实就是对外通知焦点变化情况,由 APP 来处理焦点变化所带来的业务需求。

一、焦点变化监听

MediaFocusControl

源码位置:/frameworks/base/services/core/java/com/android/server/audio/MediaFocusControl.java

@Nullable private IAudioPolicyCallback mFocusPolicy = null;

boolean notifyExtFocusPolicyFocusRequest_syncAf(AudioFocusInfo afi, IAudioFocusDispatcher fd, @NonNull IBinder cb) {
    synchronized (mExtFocusChangeLock) {
        afi.setGen(mExtFocusChangeCounter++);
    }
    ……
    try {
        //oneway
        mFocusPolicy.notifyAudioFocusRequest(afi, AudioManager.AUDIOFOCUS_REQUEST_GRANTED);
        return true;
    } catch (RemoteException e) {
    }
    return false;
}

        这里调用了 IAudioPolicyCallback 中的 notifyAudioFocusRequest() 方法,而 IAudioPolicyCallback 是通过 AudioPolicy 类实现的。通过

你可能感兴趣的:(Android,Audio开发,android,Audio开发)