Opentok-iOS: Истекло время ожидания при попытке подписаться на поток. Ошибка домена = OTSubscriberErrorDomain Code = 1542

Я пытаюсь создать сеанс видео между двумя устройствами iOS (оба iOS версии 7.0.4) с помощью opentok webrtc. Оба устройства используют один и тот же ключ API, идентификатор сеанса и разные токены, что и издатели. Я могу успешно установить сеанс, поскольку я могу видеть видео подписчика, а также видео издателя на одном устройстве; но я не могу увидеть видео с другого устройства и получаю сообщение об ошибке: «Error Domain = OTSubscriberErrorDomain Code = 1542» Истекло время ожидания при попытке подписаться на поток. «UserInfo = 0x15984e40 {NSLocalizedDescription = Истекло время ожидания при попытке подписаться на транслировать.}"

Короче говоря, я хочу создать видеосеанс, в котором оба устройства могут также видеть видеопоток друг друга, чего в данном случае не происходит из-за этой ошибки.

Здесь следует отметить, что тот же код раньше работал нормально, но не сейчас (никаких изменений кода не произошло).

Кто-нибудь может помочь ??


person Varsha    schedule 10.08.2015    source источник
comment
Вы что-нибудь нашли? Я предполагаю, что это происходит, когда вы одновременно пытаетесь подключиться, или когда-то у меня случается, что звук проходит, а видео нет.   -  person Waleed Mahmood    schedule 21.08.2015
comment
Нет, не сейчас. Команда техподдержки ответила, что они изучают проблему, в первую очередь, почему она возникает.   -  person Varsha    schedule 24.08.2015


Ответы (3)


Сообщение об ошибке, которое вы видите, указывает на то, что второе устройство имеет проблемы с подключением к сети. Это не должно происходить регулярно, но будет происходить в ситуациях, когда сеть слабая или нестабильная. Вы должны обработать эту ошибку, показывая пользователю правильную информацию в пользовательском интерфейсе, скорее всего, что-то вроде «Проблемы с сетевым подключением. Повторите попытку позже».

person Ankur    schedule 10.08.2015
comment
Я пробовал переключать устройства, то есть сначала подключать второе устройство, и наоборот. Думаю, если возникла проблема с подключением, то этого быть не должно. - person Varsha; 13.08.2015
comment
@VarshaBawari, можете ли вы попробовать запустить Connectivity Doctor, чтобы узнать, есть ли проблемы с сетью? itunes.apple.com/us/app/opentok- связь-доктор / - person Ankur; 08.09.2015

Ниже приведены настройки, которые были разработаны для меня шаг за шагом.

1) Есть опция в Настройки-> Разработчик-> Статус. Если его «Включено», выключите его или измените на желаемый параметр. Кроме того, как сказал Анкур, уточните у сетевого администратора (если есть), не добавил ли он какие-то ограничения.

2) Проверьте созданный вами объект подписчика для подключения к потоку после вызова - (void)subscriberDidConnectToStream:(OTSubscriberKit*)subscriber. Поместите subscriber.view в простое представление UIViewController, чтобы увидеть, правильно ли получено видео.

Последнее, что нужно проверить, - это использовать ли вы отдельные токены (сгенерированные из панели управления) для каждого устройства.

Ура и удачи.

Отредактировано:

Для многопартийности решение / лучший способ избежать проблемы с тайм-аутом:

Поскольку ресурсы устройства ограничены, постарайтесь не подписываться на все каналы видео сторон, присутствующие в этой комнате. Составьте список, как приложение Hangouts. Сделайте его переключаемым на другие каналы, и когда вы переключаетесь на отказ от подписки на видео всех остальных, кроме того, который был выбран в списке (некоторые из них, как этот пример списка, вы можете планировать в соответствии с требованиями вашего приложения).

Кроме того, важно то, что вы генерируете правильные токены в соответствии с требованиями к комнате, то есть ретранслируются для двух пользователей и маршрутизируются для многосторонних. Убедитесь, что они созданы правильно, вместе с их «ролью».

person Waleed Mahmood    schedule 25.08.2015
comment
Я могу решить это для двух устройств, но для многопользовательского сеанса видео, третьего устройства, которое подключается в конце. Он получает два потока, но время ожидания для подключения к этим потокам. :( - person Waleed Mahmood; 25.08.2015

Просто чтобы убедиться, что простейшее не случится ни с кем, убедитесь, что если вы используете некоторые из образцов классов TOKBOX, вы изменили значение

static bool subscribeToSelf

на НЕТ, если вы хотите подписаться на чужой стрим.

Если вы оставите ДА, он попытается подписаться на ваш опубликованный поток, но токен для этого не подходит, поэтому время ожидания истекает.

person Mpampis Sougias    schedule 26.11.2015