OTCore запускает только существующие потоки вместо 1 - PullRequest
1 голос
/ 02 апреля 2020

Извините за мой английский sh голландский родной.

Я использую ускоритель-ядро- js, чтобы поделиться своим экраном и опубликовать sh его.

Пример можно можно найти здесь https://github.com/opentok/accelerator-core-js.

Пытался реализовать его, но заблудился.

Когда я открываю новый поток для публикации, он публикует sh 2 * существующие потоки.

Чтобы создать впечатление, если у меня есть 2 активных потока и я открыл новый 1, он опубликует sh 3 новых потока.

Я предоставил некоторый код.

В качестве примера enter image description here

Запущены три открытых sh потока. По крайней мере, я думаю, что три начали то, что я из html.

let otCore;
const otCoreOptions = {
  credentials: {
    apiKey:"" ,
    sessionId: "",
    token: "",
  },
  // A container can either be a query selector or an HTML Element
  streamContainers(pubSub, type, data, streamId) {
    return {
      publisher: {
        camera: '#cameraPublisherContainer',
        screen: '#screenPublisherContainer',
      },
      subscriber: {
        camera: '#cameraSubscriberContainer',
        screen: '#screenSubscriberContainer',
      },
    }[pubSub][type];
  },
  controlsContainer: '#controls',
  packages: ['textChat', 'screenSharing', 'annotation'],
  communication: {
    callProperites: null, // Using default
  },

  screenSharing: {
    extensionID: "lalalalalalal",
    annotation: true,
    externalWindow: false,
    dev: true,
    screenProperties: {
      insertMode: 'append',
      width: '100%',
      height: '100%',
      showControls: false,
      style: {
        buttonDisplayMode: 'off',
      },
      videoSource: 'window',
      fitMode: 'contain' // Using default
    },
  },
  annotation: {
    absoluteParent: {
      publisher: '.App-video-container',
    }
  },
};

....

 render() {
    const { connected, active } = this.state;
    const {
      localAudioClass,
      localVideoClass,
      localCallClass,
      controlClass,
      cameraPublisherClass,
      screenPublisherClass,
      cameraSubscriberClass,
      screenSubscriberClass,
    } = containerClasses(this.state);

    return (
      <div className="App">
        <div className="App-header">
          <h1>OpenTok Accelerator Core</h1>
        </div>
        <div className="App-main">
          <div className="App-video-container">
            { !connected && connectingMask() }
            { connected && !active && startCallMask(this.startCall)}
            <div id="cameraPublisherContainer" className={cameraPublisherClass} />
            <div id="screenPublisherContainer" className={screenPublisherClass} />
            <div id="cameraSubscriberContainer" className={cameraSubscriberClass} />
            <div id="screenSubscriberContainer" className={screenSubscriberClass} />
          </div>
          <div id="controls" className={controlClass}>
            <div className={localAudioClass} onClick={this.toggleLocalAudio} />
            <div className={localVideoClass} onClick={this.toggleLocalVideo} />
            <div className={localCallClass} onClick={this.endCall} />
          </div>
          <div id="chat" className="App-chat-container" />
        </div>
      </div>
    );
  }
...