我正在使用 ExoPlayer 开发歌曲播放器应用程序。 我目前遇到的问题是,在 Android 7.x 设备上,用户能够同时收听两个播放器。这似乎是新 Android 版本的问题。
我想知道是否有可能避免这种行为,使用户在我的应用程序上收听媒体时无法收听两个播放器。
最佳答案
您可能需要在应用程序中管理音频焦点。 你可以在这里看看: https://developer.android.com/guide/topics/media-apps/audio-focus.html
To avoid every music app playing at the same time, Android introduces the idea of audio focus. Only one app can hold audio focus at a time.
When your app needs to output audio, it should request audio focus.
AudioManager mAudioManager_ = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
AudioManager.OnAudioFocusChangeListener mOnAudioFocusChangeListener_ = new AudioManager.OnAudioFocusChangeListener()
{ @Override
public void onAudioFocusChange (int focusChange)
{ switch (focusChange)
{ case AudioManager.AUDIOFOCUS_GAIN:
Log.e("DEBUG", "##### AUDIOFOCUS_GAIN");
break;
case AudioManager.AUDIOFOCUS_LOSS_TRANSIENT:
Log.e("DEBUG", "##### AUDIOFOCUS_LOSS_TRANSIENT");
break;
case AudioManager.AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK:
Log.e("DEBUG", "##### AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK");
break;
case AudioManager.AUDIOFOCUS_LOSS:
Log.e("DEBUG", "##### AUDIOFOCUS_LOSS");
break;
}
}
};
if (mAudioManager_.requestAudioFocus(mOnAudioFocusChangeListener_, AudioManager.STREAM_MUSIC, AudioManager.AUDIOFOCUS_GAIN) == AudioManager.AUDIOFOCUS_REQUEST_GRANTED)
{ // start play
// ...
mAudioManager_.abandonAudioFocus(mOnAudioFocusChangeListener_);
}
关于android - Music Player App - 避免两个音乐播放器同时播放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47348768/