2012-11-07 3 views

답변

4

공개 API가 있다는 사실을 알게되면 현재 어떤 앱에 포커스가 있는지 알 수 있습니다.

앱, 그것을 요청하여 오디오 포커스가있는 경우 당신은 추적 할 수 있습니다 예 :

AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE); 
boolean requestGranted = AudioManager.AUDIOFOCUS_REQUEST_GRANTED == audioManager.requestAudioFocus(listener, AudioManager.STREAM_MUSIC, 
        AudioManager.AUDIOFOCUS_GAIN); 
if(requestGranted){ 
    // you now has the audio focus 
} 

당신이 요청하면 리스너의 단일 인스턴스를 유지하고 초점을 포기해야 할것입니다, see my answer here

@Override 
public void onAudioFocusChange(int focus) { 

    switch (focus) { 
    case AudioManager.AUDIOFOCUS_LOSS: 
     Log.d(TAG,"AUDIOFOCUS_LOSS"); 
     // stop and release your player 
     break; 
    case AudioManager.AUDIOFOCUS_LOSS_TRANSIENT: 
     Log.d(TAG,"AUDIOFOCUS_LOSS_TRANSIENT"); 
     // pause your player 
     break; 
    case AudioManager.AUDIOFOCUS_GAIN: 
     Log.d(TAG,"AUDIOFOCUS_GAIN"); 
     // restore volume and resume player if needed 
     break; 
    case AudioManager.AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK: 
     Log.d(TAG,"AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK"); 
     // Lower volume 
     break; 
    } 
} 
: 오디오 초점을 여기에

로 일반적인 문제를 해결하는 것은 onAudioFocusChange()의 예입니다