mirror of
https://github.com/vector-im/element-call.git
synced 2026-02-02 04:05:56 +00:00
Break loop in acquiring media on Safari
This commit is contained in:
@@ -53,6 +53,7 @@ import {
|
||||
useTrackProcessorSync,
|
||||
} from "../livekit/TrackProcessorContext";
|
||||
import { usePageTitle } from "../usePageTitle";
|
||||
import { useLatest } from "../useLatest";
|
||||
|
||||
interface Props {
|
||||
client: MatrixClient;
|
||||
@@ -159,13 +160,14 @@ export const LobbyView: FC<Props> = ({
|
||||
],
|
||||
);
|
||||
|
||||
const latestMuteStates = useLatest(muteStates);
|
||||
const onError = useCallback(
|
||||
(error: Error) => {
|
||||
logger.error("Error while creating preview Tracks:", error);
|
||||
muteStates.audio.setEnabled?.(false);
|
||||
muteStates.video.setEnabled?.(false);
|
||||
latestMuteStates.current.audio.setEnabled?.(false);
|
||||
latestMuteStates.current.video.setEnabled?.(false);
|
||||
},
|
||||
[muteStates.audio, muteStates.video],
|
||||
[latestMuteStates],
|
||||
);
|
||||
|
||||
const tracks = usePreviewTracks(localTrackOptions, onError);
|
||||
|
||||
@@ -60,7 +60,7 @@ function useMuteState(
|
||||
// Determine the default value once devices are actually connected
|
||||
(prev) =>
|
||||
prev ?? (device.available.size > 0 ? enabledByDefault() : undefined),
|
||||
[device],
|
||||
[device.available.size],
|
||||
);
|
||||
return useMemo(
|
||||
() =>
|
||||
@@ -70,7 +70,7 @@ function useMuteState(
|
||||
enabled: enabled ?? false,
|
||||
setEnabled: setEnabled as Dispatch<SetStateAction<boolean>>,
|
||||
},
|
||||
[device, enabled, setEnabled],
|
||||
[device.available.size, enabled, setEnabled],
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user