gpt4 book ai didi

javascript - Peerjs 多个查看器

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:43:43 26 4
gpt4 key购买 nike

我正在尝试在我的应用程序中设置 session 模块。所以我找到并创建了两个用户之间的流。

问题是其他人无法加入。

我一直在尝试阅读他们的文档,但我似乎无法找到如何实现它。

这是我的代码:

    // Compatibility shim
navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia;

navigator.getUserMedia({audio: true, video: true}, function (stream) {
// Set your video displays
$('#my-video').prop('src', URL.createObjectURL(stream));
window.localStream = stream;
}, function () {
$('#step1-error').show();
});

peerFactory.on('error', function (err) {
alert(err.message);
});

peerFactory.on('connection', function (id) {
alert('new logon' + id);
});



// Receiving a call
peerFactory.on('call', function (call) {
// Answer the call automatically (instead of prompting user) for demo purposes
var r = confirm('Ny kald fra ');
if (r) {
call.answer(window.localStream);
$scope.currentCall = true;
$scope.$apply();
streamCall(call);
}
else
{
call.close();
window.existingCall.close();
}
});

$scope.makeCall = function (callId) {
var call = peerFactory.call(callId, window.localStream);
$scope.currentCall = true;
streamCall(call);
};

$scope.hangUp = function()
{
$scope.currentCall = false;
window.existingCall.close();
};

function streamCall(call) {
// Hang up on an existing call if present
if (window.existingCall) {
window.existingCall.close();
}

// Wait for stream on the call, then set peerFactory video display
call.on('stream', function (stream) {
$('#their-video').prop('src', URL.createObjectURL(stream));
});
// UI stuff
window.existingCall = call;
$('#their-id').text(call.peerFactory);
call.on('error', function () {
var i = 0;
});
}

任何人都可以在正确的方向上插入我吗?

最佳答案

根据您的描述和代码,我会说您正在尝试在同一通话中连接两个以上的用户。

这对于 WebRTC 是不可能的,它只允许您为每个对等连接连接两端。他们可以复制多 session 行为的方法是为每对参与者创建不同的调用。

为此,您需要为每个参与者提供不同的 video 元素和一个用户列表,以便您知道每个参与者的 ID,您需要在您要加入的房间中调用。

PeerJS won't give you a mechanism to know the other ID's in the room/call所以你需要找到一种机制让新参与者知道。

我有一个 example在我的 AngularJS/Socket.io WebRTC 通信工具的 github 中,随意检查它并查看如何使用 WebRTC p2p 连接重现多 session 调用。

编辑:假设您的用户有某种 ID,并且您的程序的行为方式类似于 makeCall('Alice'),假设当 Carol 调用 Alice 时 Alice 正在与 Bob 通话,而您想要Carol 与两者一起加入通话,您可以在没有新信令层的情况下实现这一点:

  1. Alice 正在和 Bob 通话
  2. 卡罗尔给爱丽丝打电话
  3. Alice 接听电话
  4. Alice 使用 DataChannel 将 Bob 的 ID 发送给 Carol
  5. 卡罗尔给鲍勃打电话
  6. Alice、Bob 和 Carol 在逻辑三方通话中互相交谈

关于javascript - Peerjs 多个查看器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34089846/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com