mirror of
https://github.com/vector-im/element-call.git
synced 2026-08-29 21:15:19 +00:00
fix: AudioCaptureOptions was causing un-necessary effect render
AudioCaptureOptions was a different object but with same internal values, use directly deviceId so that Object.is works properly
This commit is contained in:
@@ -57,7 +57,7 @@ test.each<[string, ConnectionError]>([
|
|||||||
() => setSfuConfig({ url: "URL", jwt: "JWT token" }),
|
() => setSfuConfig({ url: "URL", jwt: "JWT token" }),
|
||||||
[],
|
[],
|
||||||
);
|
);
|
||||||
useECConnectionState({}, false, mockRoom, sfuConfig);
|
useECConnectionState("default", false, mockRoom, sfuConfig);
|
||||||
return <button onClick={connect}>Connect</button>;
|
return <button onClick={connect}>Connect</button>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ async function doConnect(
|
|||||||
livekitRoom: Room,
|
livekitRoom: Room,
|
||||||
sfuConfig: SFUConfig,
|
sfuConfig: SFUConfig,
|
||||||
audioEnabled: boolean,
|
audioEnabled: boolean,
|
||||||
audioOptions: AudioCaptureOptions,
|
initialDeviceId: string | undefined,
|
||||||
): Promise<void> {
|
): Promise<void> {
|
||||||
// Always create an audio track manually.
|
// Always create an audio track manually.
|
||||||
// livekit (by default) keeps the mic track open when you mute, but if you start muted,
|
// livekit (by default) keeps the mic track open when you mute, but if you start muted,
|
||||||
@@ -82,7 +82,7 @@ async function doConnect(
|
|||||||
let preCreatedAudioTrack: LocalTrack | undefined;
|
let preCreatedAudioTrack: LocalTrack | undefined;
|
||||||
try {
|
try {
|
||||||
const audioTracks = await livekitRoom!.localParticipant.createTracks({
|
const audioTracks = await livekitRoom!.localParticipant.createTracks({
|
||||||
audio: audioOptions,
|
audio: { deviceId: initialDeviceId },
|
||||||
});
|
});
|
||||||
if (audioTracks.length < 1) {
|
if (audioTracks.length < 1) {
|
||||||
logger.info("Tried to pre-create local audio track but got no tracks");
|
logger.info("Tried to pre-create local audio track but got no tracks");
|
||||||
@@ -187,7 +187,7 @@ async function connectAndPublish(
|
|||||||
}
|
}
|
||||||
|
|
||||||
export function useECConnectionState(
|
export function useECConnectionState(
|
||||||
initialAudioOptions: AudioCaptureOptions,
|
initialDeviceId: string | undefined,
|
||||||
initialAudioEnabled: boolean,
|
initialAudioEnabled: boolean,
|
||||||
livekitRoom?: Room,
|
livekitRoom?: Room,
|
||||||
sfuConfig?: SFUConfig,
|
sfuConfig?: SFUConfig,
|
||||||
@@ -280,7 +280,7 @@ export function useECConnectionState(
|
|||||||
livekitRoom!,
|
livekitRoom!,
|
||||||
sfuConfig!,
|
sfuConfig!,
|
||||||
initialAudioEnabled,
|
initialAudioEnabled,
|
||||||
initialAudioOptions,
|
initialDeviceId,
|
||||||
)
|
)
|
||||||
.catch((e) => {
|
.catch((e) => {
|
||||||
if (e instanceof ElementCallError) {
|
if (e instanceof ElementCallError) {
|
||||||
@@ -296,7 +296,7 @@ export function useECConnectionState(
|
|||||||
}, [
|
}, [
|
||||||
sfuConfig,
|
sfuConfig,
|
||||||
livekitRoom,
|
livekitRoom,
|
||||||
initialAudioOptions,
|
initialDeviceId,
|
||||||
initialAudioEnabled,
|
initialAudioEnabled,
|
||||||
doFocusSwitch,
|
doFocusSwitch,
|
||||||
]);
|
]);
|
||||||
|
|||||||
@@ -155,9 +155,7 @@ export function useLiveKit(
|
|||||||
);
|
);
|
||||||
|
|
||||||
const connectionState = useECConnectionState(
|
const connectionState = useECConnectionState(
|
||||||
{
|
initialDevices.current.audioInput.selectedId,
|
||||||
deviceId: initialDevices.current.audioInput.selectedId,
|
|
||||||
},
|
|
||||||
initialMuteStates.current.audio.enabled,
|
initialMuteStates.current.audio.enabled,
|
||||||
room,
|
room,
|
||||||
sfuConfig,
|
sfuConfig,
|
||||||
|
|||||||
Reference in New Issue
Block a user