Пересмотр WebRTC между Chrome и Firefox
Я могу установить соединение WebRTC между Firefox и Chrome, но повторное согласование между Firefox-Chrome не работает должным образом.
Нет проблем при пересмотре пары Chrome-Chrome и пары Firefox-Firefox.
С парой Firefox-Chrome, когда я начинаю пересмотр с Chrome после удаления или добавления дорожки, пересмотр проходит успешно и onremovestream
или же onaddstream
обратные вызовы запускаются на Firefox правильно.
Но когда я начинаю пересмотр с Firefox после удаления или добавления трека, используя pc.removeTrack
или же pc.addTrack
, повторное согласование прошло успешно без каких-либо ошибок. Но в Хроме onremovestream
или же onaddstream
обратные вызовы не запускаются. Когда я получаю MediaStream с помощью pc.getRemoteStreams
Я вижу, что идентификаторы треков меняются после пересмотра, но MediaStream не работает, когда я пытался его воспроизвести.
Я заметил одну странную вещь: фактический идентификатор локальной дорожки из Firefox не совпадает с идентификатором удаленной дорожки в Chrome (даже до пересмотра).
Поддерживают ли Chrome и Firefox пересмотр в браузерах (в основном от Firefox до Chrome)?
Кто-нибудь добился пересмотра между Firefox и Chrome?
Есть ли решение этой проблемы?
1 ответ
Это не полное решение, а причина, по которой это происходит. Я рекомендую опубликовать решение, если вы найдете его.
Есть два плана UnifiedPlan и PlanB для нескольких потоков в WebRTC. PlanB был удален, и UnifiedPlan становится стандартом. Firefox реализовал UnifiedPlan, но Chrome все еще имеет реализацию PlanB. Об этом есть ошибка Chromium.
Для этого был написан polyfill, spd-interop. Но у этого полифилла есть ограничение, он поддерживает только пересмотр с Chrome на Firefox.
Если я найду решение этой проблемы до того, как Chrome решит проблему, я обновлю ответ.