OpenTok/Tokbox 显示另一个页面直到订阅打开

OpenTok/Tokbox Display another page until a suscribe is on

我正在尝试拨打 "waiting page" 直到一位订阅者接听电话,我试过这个:

    <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 创建的,是否有使用 opemtok 方法执行此操作的简单方法?

它不起作用的主要原因是您在创建 ID 为 subscriber 的元素之前调用了 session.subscribe()。在 调用 session.subscribe().

之前,您需要确保 ID 为 subscriber 的元素存在

以下是您的代码段的扩展,但它不是将 id 字符串传递到 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);
}