[英]Music Player App - avoid that two music players play at the same time
我正在使用ExoPlayer开发一个歌曲播放器应用程序。 我目前遇到的问题是,在Android 7.x设备上,用户可以同时收听两个播放器。 它似乎是新的Android版本的东西。
我想知道是否可以避免这种行为,使用户在收听我的应用程序上的媒体时无法收听两个玩家。
您可能需要在应用程序中管理音频焦点。 您可以在这里查看: https : //developer.android.com/guide/topics/media-apps/audio-focus.html
为了避免每个音乐应用同时播放,Android引入了音频焦点的概念。 一次只能有一个应用程序可以保持音频焦点。
当您的应用需要输出音频时,它应该请求音频焦点。
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_);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.