|
@@ -13,7 +13,8 @@ import {
|
13
|
13
|
setAudioOutputDevice,
|
14
|
14
|
setVideoInputDeviceAndUpdateSettings
|
15
|
15
|
} from '../base/devices';
|
16
|
|
-import JitsiMeetJS from '../base/lib-jitsi-meet';
|
|
16
|
+import { isIosMobileBrowser } from '../base/environment/utils';
|
|
17
|
+import JitsiMeetJS, { browser } from '../base/lib-jitsi-meet';
|
17
|
18
|
import { toState } from '../base/redux';
|
18
|
19
|
import {
|
19
|
20
|
getUserSelectedCameraDeviceId,
|
|
@@ -29,6 +30,10 @@ import {
|
29
|
30
|
* @returns {Object} - The properties for the device selection dialog.
|
30
|
31
|
*/
|
31
|
32
|
export function getDeviceSelectionDialogProps(stateful: Object | Function) {
|
|
33
|
+ // On mobile Safari because of https://bugs.webkit.org/show_bug.cgi?id=179363#c30, the old track is stopped
|
|
34
|
+ // by the browser when a new track is created for preview. That's why we are disabling all previews.
|
|
35
|
+ const disablePreviews = isIosMobileBrowser() && browser.isVersionGreaterThan('15.3');
|
|
36
|
+
|
32
|
37
|
const state = toState(stateful);
|
33
|
38
|
const settings = state['features/base/settings'];
|
34
|
39
|
const { conference } = state['features/base/conference'];
|
|
@@ -64,10 +69,10 @@ export function getDeviceSelectionDialogProps(stateful: Object | Function) {
|
64
|
69
|
disableVideoInputSelect,
|
65
|
70
|
hasAudioPermission: permissions.audio,
|
66
|
71
|
hasVideoPermission: permissions.video,
|
67
|
|
- hideAudioInputPreview: disableAudioInputChange || !JitsiMeetJS.isCollectingLocalStats(),
|
68
|
|
- hideAudioOutputPreview: !speakerChangeSupported,
|
|
72
|
+ hideAudioInputPreview: disableAudioInputChange || !JitsiMeetJS.isCollectingLocalStats() || disablePreviews,
|
|
73
|
+ hideAudioOutputPreview: !speakerChangeSupported || disablePreviews,
|
69
|
74
|
hideAudioOutputSelect: !speakerChangeSupported,
|
70
|
|
- hideVideoInputPreview: !cameraChangeSupported,
|
|
75
|
+ hideVideoInputPreview: !cameraChangeSupported || disablePreviews,
|
71
|
76
|
selectedAudioInputId,
|
72
|
77
|
selectedAudioOutputId,
|
73
|
78
|
selectedVideoInputId
|