2016-05-06 5 views
0

Wenn wir den Audiofokus aufgrund von AudioManager.AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK verlieren, sollten wir die Tonlautstärke reduzieren, der untile Audiofokus wird wieder auf AudioManager.AUDIOFOCUS_GAIN zurückgesetzt. Es wird jedoch ausgelöst, wenn wir den Listener vor dem Ereignis registriert haben.
Wie überprüft man, ob Audiofokus im Zustand AudioManager.AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK ist, wenn wir uns nach AudioManager.AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK Ereignis registriert haben?Wie überprüft man, ob der Ton geduckt werden soll?

AudioManager.OnAudioFocusChangeListener audiofocusListener = 
     new AudioManager.OnAudioFocusChangeListener() { 
     @Override public void onAudioFocusChange(int focusChange) { 
      switch (focusChange) { 
      case AudioManager.AUDIOFOCUS_GAIN: { 
      } 
      break; 
      case AudioManager.AUDIOFOCUS_LOSS: { 
      } 
      break; 
      case AudioManager.AUDIOFOCUS_LOSS_TRANSIENT: { 
      } 
      break; 
      case AudioManager.AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK: { 
      } 
      break; 
      } 
     } 
     }; 

Antwort

0

Wenn ich Ihre Frage richtig verstanden habe, wollen Sie wissen, ob eine andere App derzeit Audio-Fokus halten (und damit die Audioausgabe Ihrer Anwendung sollte duckte werden), bevor Sie tatsächlich Ihre Audio-Fokus Zuhörer registriert haben.

Wenn das der Fall ist (einige andere App besitzt derzeit die Audio-Fokus), dann Ihre Anfrage den Audio-Fokus für den Erwerb verweigert werden, das heißt, auf Ihren Anruf AudioManager.requestAudioFocus mit audiofocusListener mit AUDIOFOCUS_REQUEST_FAILED zurück.

Verwandte Themen