2012-11-07 38 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解決常見的問題,音頻重點

下面是onAudioFocusChange()一個例子:

@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; 
    } 
} 
相關問題