Ошибка Opentok при попытке сделать 2 вызова из одной системы

Когда мы попытались сделать более одного вызова из одной и той же системы (настольный/мобильный), opentok выдает нам ошибку. Ошибка

OT.Publisher.onStreamAvailableError SourceUnavailableError: Неизвестная ошибка при получении пользовательского мультимедиа

1500 Неизвестная ошибка при получении пользовательского мультимедиа

OT.exception :: title: Невозможно опубликовать (1500) msg: Неизвестная ошибка при получении пользовательского мультимедиа

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) {
}

person BalaChandra    schedule 22.05.2015    source источник


Ответы (1)


Я могу открыть Meeting.tokbox.com в окне Chrome и окне Firefox и успешно поговорить с самим собой с полным видео и аудио, поэтому, прежде всего, вы уверены, что ваша текущая реализация верна?

Но чтобы ответить на ваш актуальный вопрос, не существует API для обнаружения уникальных пользователей в разных браузерах. Однако вы можете назначать людям уникальные токены на основе портала имени пользователя, чтобы вы могли пометить пользователя.

person Dave Mun    schedule 22.05.2015
comment
вызовы будут связаны с гостевыми пользователями, поэтому мы не можем связать с ними токены, но я еще раз проверю реализацию. - person BalaChandra; 25.05.2015
comment
@BalaChandra: Вам обязательно нужно еще раз проверить свою реализацию. Мы также работаем с гостевыми пользователями, но даже для гостевых пользователей нашей системы нам по-прежнему нужны токены для подключения к сеансу TokBox. Я предлагаю вам начать внимательно читать документы, см. следующий tokbox.com/opentok/concepts/token_creation.html - person Mark Veenstra; 26.05.2015
comment
@MarkVeenstra В настоящее время мы назначаем разные токены сеанса для разных запросов на вызовы из браузеров, но если второй вызов выполняется из той же системы в другом браузере, opentok выдает ошибку - person BalaChandra; 26.05.2015
comment
Ну, может быть, добавьте к этой проблеме код, который изолирует вашу проблему. Как вы создаете сеансы, как генерируете токены и как подключаются все пользователи? Тем не менее есть проблема в вашем коде. Проблема, с которой вы столкнулись, не существует ни в нашем коде, ни в коде @DaveMun. - person Mark Veenstra; 26.05.2015
comment
@MarkVeenstra хорошо, мы еще раз проверим нашу реализацию, спасибо - person BalaChandra; 26.05.2015
comment
@MarkVeenstra Я обновил вопрос с ошибкой и кодом, который мы используем. Пожалуйста, посмотрите на это. Спасибо.! - person BalaChandra; 27.05.2015
comment
В вашей реализации нет ничего уникального. Ошибка 1500 обычно означает, что камера занята, что означает конфликтный доступ к одной камере. Вы используете Internet Explorer в качестве браузера для открытия двух окон? - person Dave Mun; 28.05.2015
comment
@DaveMun Мы используем Firefox и Chrome, наша цель — не показывать эту ошибку конечному пользователю. - person BalaChandra; 28.05.2015
comment
Вы по-прежнему видите эту ошибку, если открываете два сеанса на tokbox.com/tools/debugger? Один в Chrome и один в Firefox? - person Dave Mun; 29.05.2015