마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

Exoplayer 오디오 플레이 시 전화이벤트 문의드립니다

0 추천

안드로이드 초보 개발자입니다.

 

질문하고 싶은 내용은

현재 Exoplayer 를 사용하여 오디오 플레이어를 개발중인데

계속 플레이가 되어야 하는 부분 때문에 포그라운드 서비스로 올려서 플레이가 되도록 개발해놓았습니다

 

문제는 전화가 오게 되면 이게 멈춰야하는데 제어하는 시점 자체를 잡지를 못하겠습니다..ㅠ

 

구글링을 하다가 서비스 클래스에 AudioManager.OnAudioFocusChangeListener 를 implements 시켜서 

@Override
public void onAudioFocusChange(int focusChange) {
    Log.d("foregroundService", "onAudioFocusChange");
    switch (focusChange)    {
        case AudioManager.AUDIOFOCUS_GAIN:
            if(onAirPlayer != null)  { playRadio(); }
            break;
        case AudioManager.AUDIOFOCUS_LOSS:
        case AudioManager.AUDIOFOCUS_LOSS_TRANSIENT:
        case AudioManager.AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK:
            pauseRadio();
            break;
    }
}

해당 메소드를 추가했는데 해당 이벤트로 잡히지를 않네요;;

 

혹시 이렇게 통화를 하게 되면 그 이벤트를 잡을 수 있는 방법이 있을까요?

[안드로보이] (240 포인트) 님이 2019년 5월 2일 질문
[안드로보이]님이 2019년 5월 2일 수정

2개의 답변

0 추천
 
채택된 답변
자문자답입니다.

 

애초에 제가 문제해결 포커스를 잘못잡았었습니다.

AudioFocus 쪽을 해결하려했는데 이 부분이 아닌

TelephonyManager와 PhoneStateListener의 LISTEN_CALL_STATE 를 사용하여 해결하였습니다.
[안드로보이] (240 포인트) 님이 2019년 5월 13일 답변
0 추천
익명사용자 님이 2019년 5월 3일 답변
답변 감사합니다.
그런데 알려주신 사이트에서 참조해서 작업해도 해결은 안되더라구요..
...