fix(prejoin): Add audio tracks on Safari always.

This fixes a bug where remote audio is not being played out if the user joins audio and video muted from pre-join screen.
This commit is contained in:
Jaya Allamsetty 2021-11-10 13:05:24 -05:00 committed by Jaya Allamsetty
parent 9ca0ee41b6
commit bc6070b98d
1 changed files with 3 additions and 4 deletions

View File

@ -6,8 +6,7 @@ declare var APP: Object;
import { v4 as uuidv4 } from 'uuid'; import { v4 as uuidv4 } from 'uuid';
import { getDialOutStatusUrl, getDialOutUrl, updateConfig } from '../base/config'; import { getDialOutStatusUrl, getDialOutUrl, updateConfig } from '../base/config';
import { isIosMobileBrowser } from '../base/environment/utils'; import { browser, createLocalTrack } from '../base/lib-jitsi-meet';
import { createLocalTrack } from '../base/lib-jitsi-meet';
import { isVideoMutedByUser, MEDIA_TYPE } from '../base/media'; import { isVideoMutedByUser, MEDIA_TYPE } from '../base/media';
import { updateSettings } from '../base/settings'; import { updateSettings } from '../base/settings';
import { import {
@ -240,10 +239,10 @@ export function joinConference(options?: Object, ignoreJoiningInProgress: boolea
// Do not signal audio/video tracks if the user joins muted. // Do not signal audio/video tracks if the user joins muted.
for (const track of localTracks) { for (const track of localTracks) {
// Always add the audio track on mobile Safari because of a known issue where audio playout doesn't happen // Always add the audio track on Safari because of a known issue where audio playout doesn't happen
// if the user joins audio and video muted. // if the user joins audio and video muted.
if (track.muted if (track.muted
&& !(isIosMobileBrowser() && track.jitsiTrack && track.jitsiTrack.getType() === MEDIA_TYPE.AUDIO)) { && !(browser.isWebKitBased() && track.jitsiTrack && track.jitsiTrack.getType() === MEDIA_TYPE.AUDIO)) {
try { try {
await dispatch(replaceLocalTrack(track.jitsiTrack, null)); await dispatch(replaceLocalTrack(track.jitsiTrack, null));
} catch (error) { } catch (error) {