OpenTok/Tokbox Отображать другую страницу, пока не включена подписка

Я пытаюсь сделать «страницу ожидания», пока один абонент не позвонит, я пробовал это:

    <div id="cont">

          <div class="row">

         <p>Waiting</p>

        </div>
</div>

И в методе session.suscribe() у меня есть это:

            session.subscribe(event.stream, 'subscriber', subscriberOptions, function (error) {

                if (error) {
                    console.log('There was an error publishing: ', error.name, error.message);
                } else {
                    delWaiting();
                }
            });

    function delWaiting() {
        $("#cont").empty();
        $('#cont').html('<div id="videos"> <div id= "subscriber"> </div > <div id="publisher"> </div> </div>');

    }

В этом примере я попытался удалить ожидающий контент и добавить html, который мне нужен для видеовызова, проблема в том, что это не работает из-за всего другого html, который создает opentok, есть ли простой способ сделать это с помощью методы опемток?


person elunap    schedule 10.02.2018    source источник


Ответы (1)


Основная причина, по которой это не работает, заключается в том, что вы вызываете session.subscribe() до создания элемента с идентификатором subscriber. Вы должны убедиться, что элемент с идентификатором subscriber существует перед вызовом session.subscribe().

Ниже приведено расширение вашего фрагмента, но вместо строки идентификатора он передает элемент DOM в session.subscribe(), а затем добавляет этот элемент в DOM после успеха:

var subscriberContainer = document.createElement('div');

session.subscribe(event.stream, subscriberContainer, subscriberOptions, function (error) {
  if (error) {
    console.log('There was an error subscribing: ', error.name, error.message);
  } else {
    delWaiting(subscriberContainer);
  }
});

function delWaiting(subscriberContainer) {
  $("#cont").empty().html('<div id="videos"> <div id="subscriber"> </div > <div id="publisher"> </div> </div>');
  $('#subscriber').append(subscriberContainer);
}
person aiham    schedule 12.02.2018