5

我正在尝试使用 chrome 和 chromium 中的 TokBox 服务来实现屏幕共享。在 chrome 提示选择一个窗口后,一切正常,但是当我停止屏幕共享时,单击屏幕共享正在进行时出现的“弹出”中的“停止共享”按钮,会发生错误:

Uncaught TypeError: Cannot read property 'connections' of null ---- opentok.js line 11103

在同一浏览器中使用 tokbox meet demo 时不会发生此错误:http: //meet.tokbox.com

我修改了基本的 tokbox 教程代码来重现这个问题:

<div id="camera"></div>
<div id="screen-preview"></div>
<div id="screen"></div>

<script src="//static.opentok.com/v2/js/opentok.js"></script>

<script type="text/javascript">

  // Go to https://dashboard.tokbox.com/ to find your OpenTok
  // API key and generate a test session ID and token:
  var apiKey    = "<%= api_key %>";
  var sessionId = "<%= session_id %>";
  var token     = "<%= token %>";

  var session = OT.initSession(apiKey, sessionId);

  session.connect(token, function(error) {
    var publisher = OT.initPublisher('camera');
    session.publish(publisher);
    screenshare();
  });

  session.on('streamCreated', function(event) {
    session.subscribe(event.stream, 'screen');
  });

  // For Google Chrome only, register your extension by ID. You can
  // find it at chrome://extensions once the extension is installed.
  OT.registerScreenSharingExtension('chrome', '<%= chrome_extension_id %>');

  function screenshare() {
    OT.checkScreenSharingCapability(function(response) {
      if (!response.supported || response.extensionRegistered === false) {
        alert('This browser does not support screen sharing.');
      } else if (response.extensionInstalled === false) {
        alert('Please install the screen sharing extension and load your app over https.');
      } else {
        // Screen sharing is available. Publish the screen.
        var screenSharingPublisher = OT.initPublisher(
          'screen-preview',
          {videoSource : 'screen'},
          function(error) {
            if (error) {
              alert('Something went wrong: ' + error.message);
            } else {
              session.publish(
                screenSharingPublisher,
                function(error) {
                  if (error) {
                    alert('Something went wrong: ' + error.message);
                  }
                });
            }
          });
        }
      });
  }
</script>
4

0 回答 0