获得AudioFocus
mAudioManager.requestAudioFocus(mAudioFocusListener,AudioManager.STREAM_MUSIC,AudioManager.AUDIOFOCUS_GAIN);
释放AudioFocus
mAudioManager.abandonAudioFocus(mAudioFocusListener);
private OnAudioFocusChangeListener mAudioFocusListener = new OnAudioFocusChangeListener() {
public void onAudioFocusChange(int focusChange) {
// AudioFocus is a new feature: focus updates are made verbose on
// purpose
Log.d(TAG, "mAudioFocusListener,onAudioFocusChange(" + focusChange +")");
switch (focusChange) {
case AudioManager.AUDIOFOCUS_LOSS:
case AudioManager.AUDIOFOCUS_LOSS_TRANSIENT: {
stopRecorderSaveSample();
NotificationManager nm = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
nm.cancel(R.drawable.recordicon);
mAudioManager.abandonAudioFocus(mAudioFocusListener);
}
break;
case AudioManager.AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK:
break;
default:
// Log.e("soundrecorder", "Unknown audio focus change code");
}
}
};