Webrtc 尝试从同一系统进行2次调用时发生Opentok错误

Webrtc 尝试从同一系统进行2次调用时发生Opentok错误,webrtc,opentok,Webrtc,Opentok,当我们试图从同一个系统(桌面/手机)拨打多个电话时,opentok给了我们一个错误 OT.Publisher.onStreamAvailableError SourceUnavailableError:获取用户媒体时出现未知错误 1500获取用户媒体时发生未知错误 OT.exception::title:获取用户媒体时无法发布(1500)消息:未知错误 SourceUnavailableError:分配视频源失败 我们使用的代码是: var apiKey = 'opentok apikey';

当我们试图从同一个系统(桌面/手机)拨打多个电话时,opentok给了我们一个错误

OT.Publisher.onStreamAvailableError SourceUnavailableError:获取用户媒体时出现未知错误

1500获取用户媒体时发生未知错误

OT.exception::title:获取用户媒体时无法发布(1500)消息:未知错误

SourceUnavailableError:分配视频源失败

我们使用的代码是:

var apiKey = 'opentok apikey';
var sessionId = 'opentok session id';
var token = 'opentok token';
var session = OT.initSession(apiKey, sessionId);
session.addEventListener('sessionConnected', sessionConnectedHandler);
session.addEventListener('sessionDisconnected', sessionDisconnectedHandler);
session.addEventListener('connectionCreated', connectionCreatedHandler);
session.addEventListener('connectionDestroyed', connectionDestroyedHandler);
session.addEventListener('streamCreated', streamCreatedHandler);
session.addEventListener('streamDestroyed', streamDestroyedHandler);
session.addEventListener('signal', signalHandler);
var parentDiv = document.getElementById('myCamera');
var publisherDiv = document.createElement('div'); // Create a div for the publisher to replace
var publisherProperties = {height: 100, width: 100};// {width:132, height:100, left: 10, top: -95};
publisherProperties.name = 'Guest';
publisherProperties.style={buttonDisplayMode: 'off'};
publisherDiv.setAttribute('id', 'opentok_publisher');
parentDiv.appendChild(publisherDiv);
var publisher = OT.initPublisher(publisherDiv.id, publisherProperties);

session.connect(token, function(error) {
session.publish(publisher);  
});
session.on('streamCreated', function(event) {

session.subscribe(event.stream,"subscribers",
                               {width:"100%", height:"100%"})
});
function sessionConnectedHandler(event) {
}
function sessionDisconnectedHandler(event) {
}
function connectionCreatedHandler(event) {

}
function connectionDestroyedHandler(event) {
}
function streamCreatedHandler(event) {
}
function streamDestroyedHandler(event) {
}
function signalHandler(event) {
}

我能够在Chrome窗口和Firefox窗口中打开meet.tokbox.com,并成功地通过完整的视频和音频与自己进行对话,因此,首先,您确定当前的实现是正确的吗


但要回答您的实际问题,没有API来检测跨浏览器的唯一用户。但是,您可以根据用户名门户为用户分配唯一的令牌,以便标记用户。

呼叫将连接到来宾用户,因此我们无法将令牌与他们关联,但我将再次检查实现。@BalaChandra:您确实需要再次检查实现。我们也在处理来宾用户,但即使对于我们系统的来宾用户,我们仍然需要令牌来连接到TokBox会话。我建议您开始仔细阅读文档,请参阅下一篇@MarkVeenstra我们目前正在为来自不同浏览器的不同呼叫请求分配不同的会话令牌,但如果第二个呼叫是从同一系统在不同浏览器中进行的,opentok将给出errorWell,可能会为此问题添加一些代码,以隔离您的问题。如何创建会话、如何生成令牌以及所有用户如何连接?您的代码中仍然存在一个问题。您的问题不存在于我们的代码中,@DaveMun代码中。@MarkVeenstra好的,我们将再次检查我们的实现,谢谢