Pārlūkot izejas kodu

fix(iOS15) fix not being able to unmute if "everyone starts muted" is set

We need to make sure the audio track is added to the JVB connection, or we won't
be able to unmute.

Why this happens is a mystery wrapped in an enigma, it started happening with
iOS 15.

Same thing applies to Safari for macOS.

Fixes: https://github.com/jitsi/jitsi-meet/issues/10104
tags/v0.0.2
Saúl Ibarra Corretgé 4 gadus atpakaļ
vecāks
revīzija
1e640cd394
Revīzijas autora e-pasta adrese nav piesaistīta nevienam kontam
1 mainītis faili ar 16 papildinājumiem un 4 dzēšanām
  1. 16
    4
      JitsiConference.js

+ 16
- 4
JitsiConference.js Parādīt failu

1104
  * @returns {Array<JitsiLocalTrack>} - list of local tracks that are unmuted.
1104
  * @returns {Array<JitsiLocalTrack>} - list of local tracks that are unmuted.
1105
  */
1105
  */
1106
 JitsiConference.prototype._getInitialLocalTracks = function() {
1106
 JitsiConference.prototype._getInitialLocalTracks = function() {
1107
-    // Always add the audio track on mobile Safari because of a known issue where audio playout doesn't happen
1108
-    // if the user joins audio and video muted.
1107
+    // Always add the audio track on certain platforms:
1108
+    //  * Safari / WebKit: because of a known issue where audio playout doesn't happen
1109
+    //    if the user joins audio and video muted.
1110
+    //  * React Native: after iOS 15, if a user joins muted they won't be able to unmute.
1109
     return this.getLocalTracks()
1111
     return this.getLocalTracks()
1110
-        .filter(track => (track.getType() === MediaType.AUDIO && (!this.isStartAudioMuted() || browser.isIosBrowser()))
1111
-        || (track.getType() === MediaType.VIDEO && !this.isStartVideoMuted()));
1112
+        .filter(track => {
1113
+            const trackType = track.getType();
1114
+
1115
+            if (trackType === MediaType.AUDIO
1116
+                    && (!this.isStartAudioMuted() || browser.isWebKitBased() || browser.isReactNative())) {
1117
+                return true;
1118
+            } else if (trackType === MediaType.VIDEO && !this.isStartVideoMuted()) {
1119
+                return true;
1120
+            }
1121
+
1122
+            return false;
1123
+        });
1112
 };
1124
 };
1113
 
1125
 
1114
 /**
1126
 /**

Notiek ielāde…
Atcelt
Saglabāt