一、音频焦点核心概念
1. 音频焦点定义
音频焦点(Audio Focus)是Android系统协调多个应用同时访问音频设备的机制,确保在特定时刻只有一个应用能主导音频播放,避免声音混叠。
2. 焦点类型矩阵
| 焦点类型 | 常量值 | 影响范围 | 典型场景 |
|---|---|---|---|
| AUDIOFOCUS_GAIN | 1 | 长期独占 | 音乐播放器、录音 |
| AUDIOFOCUS_GAIN_TRANSIENT | 2 | 短暂独占 | 导航提示、语音助手 |
| AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK | 3 | 短暂降低音量 | 通知音、消息提示 |
| AUDIOFOCUS_GAIN_TRANSIENT_EXCLUSIVE | 4 | 紧急中断 | 报警、紧急呼叫 |
二、音频焦点完整生命周期处理
1. 请求焦点标准流程
AudioManager am = (AudioManager) context.getSystemService(AUDIO_SERVICE);
AudioAttributes playbackAttributes = new AudioAttributes.Builder()
.setUsage(AudioAttributes.USAGE_MEDIA)
.setContentType(AudioAttributes.CONTENT_TYPE_MUSIC)
.build();
AudioFocusRequest focusRequest = new AudioFocusRequest.Builder(AudioManager.AUDIOFOCUS_GAIN)
.setAudioAttributes(playbackAttributes)
.setAcceptsDelayedFocus(true) // 允许延迟获取焦点
.setOnAudioFocusChangeListener(focusListene


1万+

被折叠的 条评论
为什么被折叠?



