1、App 申请音频焦点代码,举例:
private void requestAudioFocus(int focusType) {
int result;
if (android.os.Build.VERSION.SDK_INT >= 26) {
AudioFocusRequest focusRequest;
focusRequest = new AudioFocusRequest.Builder(focusType)
.setAudioAttributes((AudioAttributes) mAudioAttributes.unwrap())
.setOnAudioFocusChangeListener(mAudioFocusListener)
.build();
result = mAudioManager.requestAudioFocus(focusRequest);
} else {
result = mAudioManager.requestAudioFocus(mAudioFocusListener,
AudioManager.STREAM_MUSIC,
focusType);
}
if (result == AudioManager.AUDIOFOCUS_REQUEST_FAILED) {
mAudioFocused = false;
} else if (result == AudioManager.AUDIOFOCUS_REQUEST_GRANTED) {
mAudioFocused = true;
} else if (result == AudioManager.AUDIOFOCUS_REQUEST_DELAYED) {
mAudioFocused = false;
}
}
如果申请失败了,就用AudioManager.AUDIOFOCUS_REQUEST_FAILED。
下面的例子是错的:LOSS是丢失焦点。
我们来看一下mAudioFocusListener是怎么实现的?