2014-02-01 7 views
5

Я создал видеочат на основе webrtc, набрав peerjs.webrtc video stream stop sharing

Местный и удаленный элемент видео создается с помощью управления:

местного: 'идентификатора видео = [local_peer_id] автоигры = "истинных" управляет = "истина">'

удаленными: и «идентификатор видео = [remote_peer_id] автозапуск =„истинные“управления =„истинный“>»

Теперь во время видео-чата, если локальный пользователь немого auido удаленный пользователь не может ничего слышать и его работает отлично.

Проблема с видео. Если местный пользователь приостанавливает собственное видео, он может видеть, что видео приостановлено, но удаленный пользователь все еще может видеть свое видео в прямом эфире.

с другой стороны, если удаленный пользователь приостанавливает свое видео, местный пользователь все еще может видеть свое видео в прямом эфире.

Любой один говорят, что нужно сделать, чтобы развернуть Feathure

«Пауза» и видео «RESUME», которая работает в режиме реального времени как для сверстников?

+1

подключены ли вы к событиям остановки и паузы к переходу на webRTC? –

+0

Нет, я просто добавил локальный и удаленный одноранговый элемент видео в элементе div. Я просто попробовал кнопку pasue и play в стандартном элементе управления. не могли бы вы рассказать более подробно, что вы имеете в виду? или что мне нужно делать? –

ответ

11

Вы должны знать разницу между HTML тегами и WebRTC потоками ...

Вы можете иметь потоки работу, не имея их прикрепить к любому HTML-тегу, и средства массовой информации может еще быть отправлена ​​и получена каждый сверстник. Таким образом, каждый одноранговый узел может присоединить поток к аудио/видео тегу, и тег будет действовать только как плеер, который вы используете для воспроизведения потока, который уже запущен.

Итак, если вы отключите HTML-тег, вы будете только отключать плеер, а не поток. Если вы хотите, чтобы что-то повлияло на другого партнера, вам нужно делать что-то в потоке или в одноранговом соединении.

В частности, для отключения и возобновления аудио или видео, вы должны переключить медиа треки в потоке медиа

// create a button to toggle video 
    var button = document.createElement("button"); 
    button.appendChild(document.createTextNode("Toggle Hold")); 

    button.onclick = function(){ 
     mediaStream.getVideoTracks()[0].enabled = 
     !(mediaStream.getVideoTracks()[0].enabled); 
    } 

Для приостановки/возобновления звука, используйте getAudioTracks() вместо этого.

+0

Су очень большое спасибо! 'mediaStream.getVideoTracks() [0] .enabled = ! (mediaStream.getVideoTracks() [0].включен);» работал отлично. Один quetsion, как я могу возобновить поток снова? мне нужно снова сделать новый звонок или я могу сделать что-нибудь с помощью getVideoTracks? –

+0

Вам просто нужно включить видео треки снова – nakib

+0

да работал. mediaStream.getVideoTracks() [0] .enabled = "true". Благодаря! –

4

вызова mediaStream.stop() остановит камеру
где mediaStream это поток, который вы получили при вызове getUserMedia

Здесь рабочий example

+0

По какой-то причине это больше не работает. – igorpavlov

+0

@igorpavlov все еще работает здесь, на Chrome 46.0.2490.80 м –

+2

Это устарело, в 47 он не работает. http://stackoverflow.com/questions/34966809/stop-kill-webrtc-media-stream – igorpavlov

0

mediaStream.getAudioTracks() [0] .stop();
mediaStream.getVideoTracks() [0] .stop();

Надеюсь, что это будет работать с новыми стандартами. Его работа отлично в моем приложении.