繁体   English   中英

音乐播放器应用程序 - 避免两个音乐播放器同时播放

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM