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 类实现的。通过