前面音频焦点申请时,在 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 {//onewaymFocusPolicy.notifyAudioFocusRequest(afi, AudioManager.AUDIOFOCUS_REQUEST_GRANTED);return true;} catch (RemoteException e) {}return false;
}
这里调用了 IAudioPolicyCallback 中的 notifyAudioFocusRequest() 方法,而 IAudio