在开发车机项目中,有很多播放的声音,比如:音乐,视频,电子狗,导航,FM等,如果这么多声音混在一起,用户肯定会给个差评。
1、获取AudioManager
private AudioManager mAudioManager;
private AudioManager getAudioManager(Context context) {
if (mAudioManager == null) {
mAudioManager = (AudioManager)getSystemService(Service.AUDIO_SERVICE);
}
return mAudioManager;
}
2、获取声音焦点
private int requestAudioFocus(Context context) {
return getAudioManager(context).requestAudioFocus(new OnAudioFocusChangeListener() {
@Override
public void onAudioFocusChange(int focusChange) {
switch (focusChange) {
case AudioManager.AUDIOFOCUS_GAIN:
//在此获取到焦点
break;
case AudioManager.AUDIOFOCUS_LOSS:
case AudioManager.AUDIOFOCUS_LOSS_TRANSIENT:
//在此失去焦点
break;
default:
break;
}
}
},
AudioManager.STREAM_MUSIC,
AudioManager.AUDIOFOCUS_GAIN);
}
3、主动放弃焦点
private void abandonAudioFocus(Context context) {
getAudioManager(context).abandonAudioFocus(null);
}