2015-01-07 2 views
3

WebRtc sampleКак закрыть PeerConnection в WebRTC

Если я нажимаю вызов, разрешить/запретить меню отображается в верхнем экране. Когда я нажимаю allow, Chrome начинает отображать красный круг в заголовке, который сигнализирует о том, что микрофон активен. Все остальные звуки в других вкладках Chromes отключены (например, видео с YouTube).

Когда я нажимаю вилку, красный круг не исчезает, видео на второй вкладке все еще отключается. Я должен нажать F5, чтобы восстановить состояние, которое было до вызова.

Есть ли PeerConnection, чтобы остановить вызов и остановить запись микрофона?

ответ

5

Да, причина, по которой включен «красный свет», заключается в том, что дорожки мультимедиа в объекте mediaStream (так называемые localstream на этой конкретной странице), собранные через getusermedia, по-прежнему играют/активно.

Чтобы закрыть медиа-поток и, таким образом, отпустить любой трюк на локальных входах мультимедиа, просто вызовите localstream.stop(), который завершит поток и прекратит доступ к локальному медиавходу. Это остановит все связанные дорожки мультимедиа.

Вы также можете сделать это, позвонив stop() на отдельных дорожках СМИ (захватываемых из getVideoTracks или getAudioTracks из mediaStream).

Что касается других звуков, которые отклоняются на других страницах/приложениях. Here is the crbug handling that issue.

Сторона Примечание: если носитель пересылается через peerConnection, вам, вероятно, придется пересмотреть соединение из-за изменения mediaStream.

+0

Забавно, если я остановлю localStream, я вижу, что «красный свет» удаляется, однако видео с YouTube на другой вкладке хрома все еще отключено. Только F5 помогает – user12384512

+0

См. Мое редактирование для отслеживания crbug, которое выдает –

Смежные вопросы