2016-08-24 2 views
3

У меня есть удаленныйMediaStream объект, полученный удаленным WebRTC Peer Connection.События MediaStream, активные и неактивные, не запускаются в удаленном WebRTC Одноранговое соединение

Я хочу, чтобы проверить, когда удаленныйMediaStreamстановится неактивным (indipendently по причине).

Я прочитал, что для этой цели я должен использовать события active и inactive объекта MediaStream.

Но эти два события никогда не запускаются: даже если я устанавливаю определенный обработчик для этих двух событий, обработчики никогда не выполняются.

Вот моя реализация:

function onRemoteStream(event) { 
    event.stream.addEventListener("active", function(){ 
    console.log('The video is active'); 
    }, false); 
    event.stream.addEventListener("inactive", function(){ 
     console.log('The video is not active'); 
    }, false); 
    remoteVideo.src = window.URL.createObjectURL(event.stream); 
} 

Два сообщения не показали.

Я также попытался:

function onRemoteStream(event) { 
    event.stream.onactive = function(){ 
     console.log('The video is active'); 
    }; 
    event.stream.oninactive = function(){ 
     console.log('The video is not active'); 
    } 
    remoteVideo.src = window.URL.createObjectURL(event.stream); 
} 

Но поведение такое же.

Я не понимаю, почему два события не срабатывают.

Я использую Google Chrome 52.0.2743.116 м

ответ

1

Нет, это работает нормально, это просто, что вы не можете напрямую написать функцию для этого события (согласно документации, которая теперь удалена). Вы также можете зарегистрировать свой объектна консоли и посмотреть подробности. Вы должны вызвать предопределенную функцию, и вы можете передать столько аргументов, сколько хотите.

Я сделал быстрый код, чтобы проверить, как запускать эти события.

HTML

<video src="" autoplay id="video"></video> 

JavaScript

var video = document.getElementById('video') 

function myfun() { 
    console.log("on active event"); 
} 

navigator.getUserMedia({video:true, audio:false}, function (stream) { 
    stream.onactive = myfun(); 
    video.src = window.URL.createObjectURL(stream); 
}, function (error) { 
    console.log(error); 
}) 

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