WebRTC:多方视频会议
WebRTC: Multiparty Video Conference
我正在尝试使用 WebRTC 建立多方视频会议,只是需要澄清一些事情:
问)我需要为每位会议成员准备一份 RTCPeerConnection
object 还是只需要一份?
例如,我目前正在为双向通信执行此操作,效果很好...
var pc; // single peer connection instance (see startPeerConnection)
startLocalVideo(function (stream) {
//Offer Local video to Remote Server
if (stream) {
if (!pc) {
startPeerConnection();
}
if (pc) {
pc.addStream(stream);
pc.onaddstream = addRemoteStream;
pc.createOffer(function (description) {
pc.setLocalDescription(description, function () {
signal('offer', {
extension: extension,
call: currentcall,
description: description
});
}, failure);
}, function (error) {
console.log("createOffer error: " + error);
});
}
}
});
function startPeerConnection() {
pc = new RTCPeerConnection({
iceServers: [{
url: "stun:stun.l.google.com:19302"
}]
});
pc.onicecandidate = gotLocalIceCandidate;
}
如果您计划使用网状网络创建多方通话,所有参与者都将他们的媒体发送给所有其他参与者。您需要为调用中的每个端点创建对等连接对象。
我正在尝试使用 WebRTC 建立多方视频会议,只是需要澄清一些事情:
问)我需要为每位会议成员准备一份 RTCPeerConnection
object 还是只需要一份?
例如,我目前正在为双向通信执行此操作,效果很好...
var pc; // single peer connection instance (see startPeerConnection)
startLocalVideo(function (stream) {
//Offer Local video to Remote Server
if (stream) {
if (!pc) {
startPeerConnection();
}
if (pc) {
pc.addStream(stream);
pc.onaddstream = addRemoteStream;
pc.createOffer(function (description) {
pc.setLocalDescription(description, function () {
signal('offer', {
extension: extension,
call: currentcall,
description: description
});
}, failure);
}, function (error) {
console.log("createOffer error: " + error);
});
}
}
});
function startPeerConnection() {
pc = new RTCPeerConnection({
iceServers: [{
url: "stun:stun.l.google.com:19302"
}]
});
pc.onicecandidate = gotLocalIceCandidate;
}
如果您计划使用网状网络创建多方通话,所有参与者都将他们的媒体发送给所有其他参与者。您需要为调用中的每个端点创建对等连接对象。