我使用peerjswebrtc和peerjs:如何播放流而不開始自己的流?
媒體電話
var getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia;
getUserMedia({video: true, audio: true}, function(stream) {
var call = peer.call('another-peers-id', stream);
call.on('stream', function(remoteStream) {
// Show stream in some video/canvas element.
});
}, function(err) {
console.log('Failed to get local stream' ,err);
});
回答
var getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia;
peer.on('call', function(call) {
getUserMedia({video: true, audio: true}, function(stream) {
call.answer(stream); // Answer the call with an A/V stream.
call.on('stream', function(remoteStream) {
// Show stream in some video/canvas element.
});
}, function(err) {
console.log('Failed to get local stream' ,err);
});
});
問題是:拿到remoteStream,我需要證明我自己的流
var call = peer.call('another-peers-id', stream);
如何播放其他流而無需顯示自己的流?
我試着用getUserMedia({video:false,audio:false} ...並且有錯誤。 我應該使用getUserMedia(false ... only嗎? – yarek
啊,我看你想建立雙向通信但只想發送媒體,這是一個標準的PTT(即按即說)設置,你需要做的就是將呼叫者SDP中相關媒體的媒體IP改爲0.0.0.0(例如,如果你想要接收視頻但不發送視頻,然後將SDP的視頻部分中的媒體IP設置爲0.0.0.0) – smss
還有另外一種方法,它與呼叫保持功能更相關,但也可以在此處使用,即只需添加或更新SDP末尾的SDP屬性表示您只想接收媒體而不發送媒體,例如將「a = sendrecv」更改爲「a = recvonly」類似地,遠程方可以在其響應SDP中添加/更新該屬性,其中c這將是「a = sendonly」。 – smss