添加到@TCA的答案:
只有一个 AudioManager。因此,音频焦点被一一分配给每个请求它的应用程序。这意味着如果另一个应用程序请求音频焦点,您的应用程序将失去它。您将通过您在请求音频焦点时注册的音频焦点更改侦听器( TCA 的答案中的 afChangeListener )的 onAudioFocusChange 处理程序收到音频焦点丢失的通知。
private OnAudioFocusChangeListener focusChangeListener =
new OnAudioFocusChangeListener() {
public void onAudioFocusChange(int focusChange) {
AudioManager am =(AudioManager)getSystemService(Context.AUDIO_SERVICE);
switch (focusChange) {
case (AudioManager.AUDIOFOCUS_LOSS_TRANSIENT) :
//Transient audio loss
break;
case (AudioManager.AUDIOFOCUS_LOSS) :
//Audio focus loss. Stop playback.
break;
case (AudioManager.AUDIOFOCUS_GAIN) :
//Audio focus gain. Start playback.
break;
default: break;
}
}
};