OTCore仅启动多个现有流,而不是1

问题描述 投票:1回答:1

对不起,我的荷兰荷兰人。

我正在使用accelerator-core-js共享我的屏幕并将其发布到。

示例可在此处找到https://github.com/opentok/accelerator-core-js

试图实现它,但迷路了。

当我打开要发布的新流时,它将发布2 *现有流。

给我一个印象,如果我有2个活动流并打开一个新流,它将发布3个新流。

我提供了一些代码。

举个例子enter image description here

启动了三个发布流。至少我认为三个是从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>
    );
  }
javascript reactjs opentok tokbox
1个回答
0
投票

不确定是否仍然需要它,但这是由于以下原因:{connected &&!active && startCallMask(this.startCall)}

您应该在componentDidMount中开始调用。有完全相同的问题。确保在调用startCall处理程序之前先检查用户是否已连接。

© www.soinside.com 2019 - 2024. All rights reserved.