fix(room): нормализовать сентинел "default" выбора устройства
usePersistentUserChoices хранит «устройство не выбрано» как литерал "default", а не пустую строку — deviceId: userChoices.audioDeviceId || undefined на него не срабатывал, и в deviceId уходил сентинел. В Chrome это давало OverconstrainedError на первом визите с лишним неудачным проходом до фолбэка. Та же нормализация уже была сделана в 0.0.33 для useDeviceCheckAccess.ts — здесь то же самое для комнаты.
This commit is contained in:
@@ -452,8 +452,23 @@ export function RoomPage() {
|
|||||||
// dynacast: паблишер прекращает отдавать слои, на которые нет подписчиков.
|
// dynacast: паблишер прекращает отдавать слои, на которые нет подписчиков.
|
||||||
adaptiveStream: true,
|
adaptiveStream: true,
|
||||||
dynacast: true,
|
dynacast: true,
|
||||||
audioCaptureDefaults: { deviceId: userChoices.audioDeviceId || undefined },
|
// `usePersistentUserChoices` хранит «устройство не выбрано» как литерал
|
||||||
videoCaptureDefaults: { deviceId: userChoices.videoDeviceId || undefined },
|
// `"default"` (`@livekit/components-core`, `defaultUserChoices`), а не
|
||||||
|
// пустую строку — `|| undefined` его не отсекает, и в Chrome это давало
|
||||||
|
// `OverconstrainedError` на первом визите (см. тот же сентинел в
|
||||||
|
// `useDeviceCheckAccess.ts::openStream`).
|
||||||
|
audioCaptureDefaults: {
|
||||||
|
deviceId:
|
||||||
|
userChoices.audioDeviceId && userChoices.audioDeviceId !== 'default'
|
||||||
|
? userChoices.audioDeviceId
|
||||||
|
: undefined,
|
||||||
|
},
|
||||||
|
videoCaptureDefaults: {
|
||||||
|
deviceId:
|
||||||
|
userChoices.videoDeviceId && userChoices.videoDeviceId !== 'default'
|
||||||
|
? userChoices.videoDeviceId
|
||||||
|
: undefined,
|
||||||
|
},
|
||||||
// Аудиовыход (колонки/наушники/bluetooth) — отдельный персист, не через
|
// Аудиовыход (колонки/наушники/bluetooth) — отдельный персист, не через
|
||||||
// usePersistentUserChoices: LocalUserChoices LiveKit про него не знает
|
// usePersistentUserChoices: LocalUserChoices LiveKit про него не знает
|
||||||
// (см. lib/audioOutputDevice.ts). Читаем один раз при монтировании —
|
// (см. lib/audioOutputDevice.ts). Читаем один раз при монтировании —
|
||||||
|
|||||||
Reference in New Issue
Block a user