Problemas con iPad usando Safari con la aplicación de chat de video. Queremos presentar la transmisión de video del usuario y brindar la posibilidad de seleccionar su propio dispositivo de cámara web en una ventana emergente. Sin embargo, para mostrar el dispositivo de cámara web seleccionado, el video de la cámara web seleccionada se muestra en una ventana emergente, pero la transmisión de la cámara original se vuelve negra y el audio se corta. Esto parece suceder cuando se llama a navigator.mediaDevices.getUserMedia().
mi código para obtener el dispositivo
const constraints = { speaker: {deviceId: audioOutputSelect.value ? {exact: audioOutputSelect.value} : undefined}, audio: {deviceId: audioInputSelect.value ? {exact: audioInputSelect.value} : undefined}, video: {deviceId: videoSelect.value ? {exact: videoSelect.value} : undefined} }; navigator.mediaDevices.getUserMedia(constraints).then((stream) => { ... })El mayor problema es que el audio del video existente desaparece.
esta es una limitación conocida de getUserMedia en Safari, descrita desde 2018 en https://webrtchacks.com/guide-to-safari-webrtc/
Si su video emergente es solo un elemento HTML, debería ser posible reutilizar el objeto MediaStream, pero si está creando un cuadro de diálogo "seleccione su cámara", esto aún no funcionará.