4
我的手機上有一個應用程序,即使在沒有聲音播放的情況下也能持續拍攝音頻。如果我能夠通知用戶它是哪個應用程序,或者如果我能分辨出我的應用程序是否具有音頻焦點,我想知道是應用程序開發人員嗎?Android - 是否有可能找出哪個應用有audiofocus?
我的手機上有一個應用程序,即使在沒有聲音播放的情況下也能持續拍攝音頻。如果我能夠通知用戶它是哪個應用程序,或者如果我能分辨出我的應用程序是否具有音頻焦點,我想知道是應用程序開發人員嗎?Android - 是否有可能找出哪個應用有audiofocus?
我強烈懷疑有任何公共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;
}
}