2016-08-24 19 views
3

リモートWebRTC Peer Connectionで取得したリモートMediaStreamオブジェクトがあります。リモートWebRTCピア接続でMediaStreamイベントがアクティブおよび非アクティブにされない

は、私は、リモートMediaStream(indipendently理由によって)非アクティブになったときにチェックしたいです。

この目的のために、MediaStreamオブジェクトのactiveinactiveというイベントを使用する必要があります。

しかし、これらの2つのイベントは発生しません:これらの2つのイベントに対して特定のハンドラを設定してもハンドラは決して実行されません。ここで

私の実装は:

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); 
} 

2件のメッセージが示されたことはありません。

私も試してみました:

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); 
} 

でも動作は同じです。

2つのイベントがトリガーされない理由はわかりません。

私はGoogle Chromeの52.0.2743.116メートル

答えて

1

それが正常に動作しているんを使用している、それは(今削除されているマニュアルを1として)あなたが直接そのイベントの関数を書くことができないだけということです。 event.streamオブジェクトをコンソールに記録し、詳細を確認することもできます。あなたはあらかじめ定義された関数を呼び出さなければならず、必要なだけ多くの引数を渡すことができます。

これらのイベントをトリガする方法をテストするためのクイックコードを作成しました。

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); 
}) 

関連する問題