Снимок подписчика TokBox в сети - PullRequest
0 голосов
/ 08 апреля 2020

Я пытаюсь сделать снимок подписчика в моем веб-приложении.

Я хочу сделать снимок одним нажатием кнопки.

    var imgData = subscriber.getImgData();
    var img = document.createElement("img");
    img.setAttribute("src", "data:image/png;base64," + imgData);

    // Replace with the parent DIV for the img
    document.getElementById("containerId").appendChild(img);

Это код, который они предоставили в файле разработчика. без описания того, как это реализовать.

Теперь моя проблема в том, что если я вставлю ее в функцию onClick кнопки, как

    function capture(){

    }

, она ничего не сделает, потому что нет никакого способа получить значение подписчика для функции capture ().

Подписчик уже был инициирован при присоединении к сеансу в другой функции, например, ниже

    function initializeSession() {
          var session = OT.initSession(apiKey, sessionId);
          session.on('streamCreated', function streamCreated(event) {
                var subscriberOptions = {
                      insertMode: 'append',
                      width: '100%',
                      height: '100%'
                 };
           var subscriber = session.subscribe(event.stream, 'subscribers', subscriberOptions, handleError);

                });

Если кто-то может помочь мне в этом, как мне сделать снимок при нажатии кнопки. заранее спасибо.

1 Ответ

1 голос
/ 20 апреля 2020

OpenTok Developer Advocate здесь.

Вы хотели бы изменить свой код, чтобы определить объект подписчика вне функции initializeSession, например:

var subscriber;
function initializeSession() {
  var session = OT.initSession(apiKey, sessionId);
  session.on('streamCreated', function streamCreated(event) {
    var subscriberOptions = {
      insertMode: 'append',
      width: '100%',
      height: '100%'
    };
    subscriber = session.subscribe(event.stream, 'subscribers', subscriberOptions, handleError);
  });
}

Затем вы можете получить доступ к объект subscriber в вашей функции capture выглядит так:

function capture(){
  if (subscriber) {
    var imgData = subscriber.getImgData();
    var img = document.createElement("img");
    img.setAttribute("src", "data:image/png;base64," + imgData);

    // Replace with the parent DIV for the img
    document.getElementById("containerId").appendChild(img);
  }
}
...