Проблема
В Safari для iOS на моем iPad я могу использовать API видео Daily.co для вызова других устройств. Но как только я начинаю записывать свой локальный микрофон через библиотеку audio-recorder-polyfill, все остальные больше не смогут меня слышать, хотя я все еще могу их слышать и делиться своей камерой. Даже когда сеанс записи заканчивается, звуковой вызов остается прерванным (хотя диктофон работает успешно).
Это похоже на iOS, потому что у меня нет проблем с Windows Chrome на моем Surface.
Как воспроизвести
Занимает около 2 минут
- Посетите объясниться.mit.edu с iPad Safari или любым другим устройством. Нажмите зеленую кнопку вызова.
- Убедившись, что видеозвонок работает, нажмите кнопку записи на iPad.
- Обратите внимание, что другое устройство больше ничего не слышит
Что я пробовал
Во-первых, я предположил, что MediaRecorder аннулирует доступ ежедневного видеозвонка к микрофону, поэтому я использовал setLocalDevice
для переназначения доступа к Daily каждые 5 секунд, чтобы посмотреть, что произойдет. Это не имело значения во время записи, но когда запись закончилась, он действительно восстановил аудиовызов.
Итак, остающаяся проблема заключается в том, что поток аудиовызовов просто не работает во время записи: я читал документы MDN об API MediaCapture, в нем упоминалось, что поток имеет один вход и один выход, но я не знаю, что это на самом деле означает, и могут ли к микрофонному потоку одновременно получить доступ две вещи.
Соответствующий код
Я использую только базовый минимальный API, который предоставляет Daily и audio-recorder-polyfill.
Видеозвонки (полный код здесь)
await this.CallObject.join({
url: conferenceRoom.url,
userName: this.sessionID
});
Аудиозапись (полный код здесь )
const stream = await navigator.mediaDevices.getUserMedia({ audio: true });
this.recorder = new MediaRecorder(stream);
this.recorder.start();
Я не верю, что проблема вызвана где-то еще, но вот полный код репозитория при необходимости
Контекст реального мира Для контекста я работаю над https://explain.mit.edu а>. Вы приходите туда, просите о помощи, затем прибудет кто-то другой и воспользуется доской в реальном времени и голосовым чатом, чтобы что-то вам объяснить - и видео KhanAcademy создается как побочный продукт. Но теперь, если кто-нибудь нажмет запись, голосовой чат перестанет работать.