在开发车机项目中,有很多播放的声音,比如:音乐,视频,电子狗,导航,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);
}
本文介绍了在车机项目中如何有效管理多种声音源,包括音乐、视频、导航等,通过获取AudioManager、请求声音焦点及主动放弃焦点的方法,确保用户体验。
2万+

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



