4

OpenTok 2 APIに問題があります。ストリームの公開を開始すると、Web サイトでの Web カメラとマイクの使用を許可または拒否するよう求められます。

publisher.addEventListener('accessAllowed', allowed);
publisher.addEventListener('accessDenied', denied);

function allowed() {
    console.log('Allowed');
}

function denied() {
    console.log('Denied');
}

Firefox では期待どおりに動作します。Chrome では accessAllowed は機能しますが、accessDenied は機能しません。代わりに、次のエラーが表示されます。

OT.Publisher.onStreamAvailableError PermissionDeniedError:
TB.exception :: title: Internal Error (2000) msg: Publisher failed to access camera/mic:

何か案は?

4

1 に答える 1

5

これは、OpenTok の現在の JS ライブラリのバグです。バグが修正されたら、アップデートをお知らせします。

var waiting = false;
publisher.addEventListener('accessAllowed', function() {
  waiting = false;
  allowed();
});
publisher.addEventListener('accessDenied', function() {
  waiting = false;
  denied();
});
publisher.addEventListener('accessDialogOpened', function() {
  waiting = true;
});
publisher.addEventListener('accessDialogClosed', function() {
  setTimeout(function() {
    if (waiting) {
      waiting = false;
      denied();
    }
  }, 0);
});

アクセスを一度拒否してから再度ページにアクセスする場合、Chrome にはいくつかの奇妙な点があるため、この回避策には若干の制限があります。ユーザーがメディアのアクセス許可に関する設定を変更していない場合、ビデオは引き続き拒否され、「accessDialogOpened」も起動しません。チームに通知し、引き続き調査します。

于 2014-02-04T22:56:26.480 に答える