2014-07-16 2 views
2

안드로이드 응용 프로그램에서 백그라운드로 음악을 재생하는 서비스를 작성했습니다. 나는 오디오 포커스를 바꾸는 것을 청취하는 OnAudioFocusChangeListener을 구현했다. 문제는 다음 상황에서 onAudioFocusChange()으로 다시 전화를 걸지 않는 것입니다.youtube 앱이 비디오를 다시 시작하면 내 서비스에서 음악을 중지하는 방법?

  1. 내 앱에서 음악을 재생하고 백그라운드에서 앱을 넣으세요. (음악은 배경에서 계속 연주합니다).

  2. youtube app을 시작하고 동영상을 재생하십시오. 이렇게하면 onAudioFocusChange()에 콜백이 생겨 미디어 플레이어를 일시 중지합니다.

  3. 이제 youtube (YouTube 재생 중지)의 홈 버튼을 누릅니다.

  4. 내 앱으로 돌아가 음악을 다시 재생하고 배경에 앱을 놓습니다 (음악은 배경에서 계속 재생됩니다).

  5. 이제 YouTube를 시작하고 비디오를 다시 시작하십시오 (이전에 중지됨). onAudioFocusChange()으로 다시 전화하지 않습니다.

참고 : 만 다시 onAudioFocusChange()에 전화를하지 않는 비디오를 다시 시작하지만, 새로운 비디오를 재생, 다시 onAudioFocusChange()에게 전화를 제공합니다.

답변

1

내 자신의 문제에 대한 해결책을 찾았습니다. 이것이 제가이 문제를 어떻게 해결했는지입니다.

응용 프로그램에서 오디오 포커스를 잃을 때마다 오디오 포커스를 요청한 다음 음악을 재생해야합니다. 이렇게하면 onAudioFocusChange()을 통해 오디오 포커스의 변경 사항을들을 수 있습니다.

public boolean requestFocus() 
{ 
    return AudioManager.AUDIOFOCUS_REQUEST_GRANTED == mAudioManager 
     .requestAudioFocus(this, AudioManager.STREAM_MUSIC, AudioManager.AUDIOFOCUS_GAIN); 
} 
관련 문제