Selaa lähdekoodia

fix(android) use modern API for requesting audio focus

master
Saúl Ibarra Corretgé 4 vuotta sitten
vanhempi
commit
67002c903a

+ 21
- 2
android/sdk/src/main/java/org/jitsi/meet/sdk/AudioDeviceHandlerGeneric.java Näytä tiedosto

@@ -16,8 +16,11 @@
16 16
 
17 17
 package org.jitsi.meet.sdk;
18 18
 
19
+import android.media.AudioAttributes;
19 20
 import android.media.AudioDeviceInfo;
21
+import android.media.AudioFocusRequest;
20 22
 import android.media.AudioManager;
23
+import android.os.Build;
21 24
 
22 25
 import java.util.HashSet;
23 26
 import java.util.Set;
@@ -216,8 +219,24 @@ class AudioDeviceHandlerGeneric implements
216 219
         audioManager.setMode(AudioManager.MODE_IN_COMMUNICATION);
217 220
         audioManager.setMicrophoneMute(false);
218 221
 
219
-        if (audioManager.requestAudioFocus(this, AudioManager.STREAM_VOICE_CALL, AudioManager.AUDIOFOCUS_GAIN)
220
-            == AudioManager.AUDIOFOCUS_REQUEST_FAILED) {
222
+        int gotFocus;
223
+        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
224
+            gotFocus = audioManager.requestAudioFocus(new AudioFocusRequest.Builder(AudioManager.AUDIOFOCUS_GAIN)
225
+                .setAudioAttributes(
226
+                    new AudioAttributes.Builder()
227
+                        .setUsage(AudioAttributes.USAGE_VOICE_COMMUNICATION)
228
+                        .setContentType(AudioAttributes.CONTENT_TYPE_SPEECH)
229
+                        .build()
230
+                )
231
+                .setAcceptsDelayedFocusGain(true)
232
+                .setOnAudioFocusChangeListener(this)
233
+                .build()
234
+            );
235
+        } else {
236
+            gotFocus = audioManager.requestAudioFocus(this, AudioManager.STREAM_VOICE_CALL, AudioManager.AUDIOFOCUS_GAIN);
237
+        }
238
+
239
+        if (gotFocus == AudioManager.AUDIOFOCUS_REQUEST_FAILED) {
221 240
             JitsiMeetLogger.w(TAG + " Audio focus request failed");
222 241
             return false;
223 242
         }

Loading…
Peruuta
Tallenna