2017-11-17 17 views
1

ExoPlayer를 사용하여 노래 플레이어 앱을 개발 중입니다. 현재 문제는 Android 7.x 기기에서 사용자가 동시에 두 명의 플레이어를들을 수 있다는 것입니다. 그것은 새로운 안드로이드 버전의 것 같다.음악 플레이어 앱 - 두 명의 뮤직 플레이어가 동시에 재생하는 것을 피하십시오

이 동작을 피하는 것이 가능한지 알고 싶습니다. 사용자가 내 앱에서 미디어를 듣는 동안 두 명의 플레이어를들을 수 없도록 만들고 싶습니다.

+0

죄송합니다, @ChrisNeve, 나는 당신의 대답을 이해하지 못했다. "한 가지"로, 나는 안드로이드 7.0+ 기기에서만 일어난다는 것을 의미했다. 죄송합니다. 오해 하셨다면 죄송합니다. 내가 찾는 것은 내 앱에서 미디어를 재생하는 동안 다른 앱을 일시 중지하는 방법입니다. –

답변

3

응용 프로그램에서 오디오 포커스를 관리해야 할 수도 있습니다. 현재 모습을 가질 수 있습니다 https://developer.android.com/guide/topics/media-apps/audio-focus.html

동시에 재생하는 모든 음악 응용 프로그램을 방지하기 위해, 안드로이드는 는 오디오 사용의 아이디어를 소개합니다. 한 번에 하나의 앱에서만 오디오 포커스를 저장할 수 있습니다.

앱에서 오디오를 출력해야하는 경우 오디오 포커스를 요청해야합니다.

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_); 
} 
+0

대단히 감사합니다 :) –