首页 > 解决方案 > OpenTok.js getImgData() 未定义

问题描述

嗨,我正在更新一个使用 Laravel 制作的项目并使用 OpenTok.js 代码使用官方文档所说的最新版本

要使用最新版本中可用的新功能,请设置脚本标签的 src 属性以加载新库: <script src="https://static.opentok.com/v2/js/opentok.min.js"></script>

它曾经工作正常,但现在它在以下行中失败了: subscriber.getImgData(); 并说它未定义有什么办法可以解决这个问题吗?也许某个地方的旧版本 OpenTok

另外,这是我的代码片段:

var publisher = '';
var subscriber = '';
function startSession() {
  session = OT.initSession(apiKey, sessionId);

  // Subscribe to a newly created stream
  session.on('streamCreated', function(event) {
    subscriber = session.subscribe(event.stream, 'subscriber', {
        insertMode: 'append',
        width: '100%',
        height: '100%',
        preferredResolution: {
          width: 1280,
          height: 720
        },
        style: {buttonDisplayMode: 'off'}
    }, handleError);
  });

  // Create a publisher
  publisher = OT.initPublisher('publisher', {
    insertMode: 'append',
    width: '100%',
    height: '100%',
    resolution: '1280x720',
    mirror: false,
    style: {buttonDisplayMode: 'off'}
  }, handleError);

  // Connect to the session
  session.connect(token, function(error) {
    // If the connection is successful, initialize a publisher and publish to the session
    if (error) {
      handleError(error);
    } else {
      session.publish(publisher, handleError);
    }
  });

  $.ajax({
      url: '/video/' + video_id + '/start', 
      type: "POST",
      cache: false,
      dataType: 'json',
      data: {
        '_token': csrf_token,
      }
  }).done(
      function(data){
        
      }
  );

  $('#start-session-btn').hide();
  showSessionControls();

  activityWatcher();
}
 $('#take-photo').click(function() {
    var video = subscriber.getImgData();
    var blob = base64ToBlob(video);
    var formData = new FormData();

    formData.append('image', blob);
    formData.append("_token", csrf_token);

    $.ajax({
        url: '/video/' + video_id, 
        type: "POST",
        cache: false,
        contentType: false,
        processData: false,
        data: formData}).done(
            function(data){
                VideoScreenGallery.addImg(data.id, data.path);
            }
        );
    });

错误返回在线: var video = subscriber.getImgData(); 这是错误本身:

未捕获的 TypeError:subscriber.getImgData 不是函数

标签: javascriptopentok

解决方案


推荐阅读