私はWebRTCを検討していますが、私は完全な画像を理解していないように感じます。私は、クライアントAは、クライアントBのビデオ・ストリームおよびその逆を見ることができるように、私は2つのクライアントを一致させることができる方法を理解するトラブルを抱えているhttps://github.com/oney/RCTWebRTCDemo/blob/master/main.jsWebRTC:クライアントAのビデオをクライアントBにストリーミングするにはどうすればよいですか?
:私は特にこのデモプロジェクトで探しています。
これはデモである:
function getLocalStream(isFront, callback) {
MediaStreamTrack.getSources(sourceInfos => {
console.log(sourceInfos);
let videoSourceId;
for (const i = 0; i < sourceInfos.length; i++) {
const sourceInfo = sourceInfos[i];
if(sourceInfo.kind == "video" && sourceInfo.facing == (isFront ? "front" : "back")) {
videoSourceId = sourceInfo.id;
}
}
getUserMedia({
audio: true,
video: {
mandatory: {
minWidth: 500, // Provide your own width, height and frame rate here
minHeight: 300,
minFrameRate: 30
},
facingMode: (isFront ? "user" : "environment"),
optional: [{ sourceId: sourceInfos.id }]
}
}, function (stream) {
console.log('dddd', stream);
callback(stream);
}, logError);
});
}
し、それはこのように使われています:
socket.on('connect', function(data) {
console.log('connect');
getLocalStream(true, function(stream) {
localStream = stream;
container.setState({selfViewSrc: stream.toURL()});
container.setState({status: 'ready', info: 'Please enter or create room ID'});
});
});
質問:
MediaStreamTrack.getSources
は正確に何をしているのですか?デバイスは複数のビデオソース(例:3つのウェブカメラ)を持つことができますか?getUserMedia
クライアントのカメラをオンにするだけですか?上のコードでは、クライアントが自分のビデオを見ているだけではありませんか?
クライアントAのURLをクライアントBに渡して、クライアントBがクライアントAからのビデオをストリームする方法を知りたいのですが、どうすればいいですか?私はこのようなものを想像しています:
- クライアントAが入り、「abc123」という部屋に入ります。別のクライアントが参加するのを待つ
- クライアントBが入り、部屋 "abc123"にも参加します。
- クライアントAは、クライアントBが部屋に入ったことを通知され、クライアントBとの接続を確立します。
- クライアントAとクライアントBがウェブカメラからストリーミングを開始します。クライアントAは、クライアントBを見ることができ、およびクライアントBは、クライアントA見ることができます
私はのWebRTCライブラリ(あなただけの部屋マッチングのためのバックエンドサーバが作成されると仮定することができます)
詳細な説明はありがとうございます! – Edmund
あなたは大歓迎です! :) –