Извините за мой английский sh голландский родной.
Я использую ускоритель-ядро- js, чтобы поделиться своим экраном и опубликовать sh его.
Пример можно можно найти здесь https://github.com/opentok/accelerator-core-js.
Пытался реализовать его, но заблудился.
Когда я открываю новый поток для публикации, он публикует sh 2 * существующие потоки.
Чтобы создать впечатление, если у меня есть 2 активных потока и я открыл новый 1, он опубликует sh 3 новых потока.
Я предоставил некоторый код.
В качестве примера
Запущены три открытых 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>
);
}