CloudHub Docs
Download Documents

RTC


Fast integration SDK

ready

Run the installation command:

npm install cloudhub-electron-sdk  --save

start

1. Get the SDK

// es6:
import RtcEngine from 'cloudhub-electron-sdk';

// commonjs:
const RtcEngine = require('cloudhub-electron-sdk').default

const rtcEngine =  RtcEngine || {};

2. initialization

rtcEngine.initialize(appId);
// rtcEngine.enableVideo();If you call enableVideo before joining the channel, the video module will be automatically enabled

See initialize for details

3. Join the channel

rtcEngine.joinChannel('', channelId, {}, '');

See join Channel for details

4. Publish local audio and video after joining the channel

rtcEngine.on('onJoinChannel', data => {
   rtcEngine.enableLocalVideo(true);
   rtcEngine.enableLocalAudio(true);
   rtcEngine.publish();
});

5. Subscribe to remote users

const videoContainerEle = document.getElementById('videoContainer');

rtcEngine.on('onRemoteVideoStateChanged', data => {
   const { state, uid, reason, streamId } = data;
   const videoId = `${streamId}-player`;
   let videoEle = document.getElementById(videoId);
   // Remote stream removal
   // Remove the remote stream if the playback element exists
   if (state === 0) {
      if (videoEle) {
         rtcEngine.removeRemoteVideo(uid, streamId);
         videoContainerEle.removeChild(videoEle);
      }
   }
   // Remote stream addition
   // If the playback element does not exist, start to create the playback element and play the remote video
   if (state === 1) {
      if (!videoEle) {
         videoEle = document.createElement('div')
         videoEle.id = videoId;
         videoContainerEle.appendChild(videoEle);
         rtcEngine.setupRemoteVideo(uid, streamId, videoEle);
      }
   }
});

6. Leave channel

rtcEngine.leaveChannel();

See leave Channel for details

other instructions

If a 64-bit system is packed with a 32-bit electron

1.Add the configuration item cloudhub_electron_arch in the root directory

If cloudhub_electron_arch is not configured, follow the system version
If configured, the corresponding addon will be downloaded

{
   "name": "cloudhub-electron-sdk-demo",
   "dependencies": {
      "cloudhub-electron-sdk": "^3.3.9",
   },
   "devDependencies": {
      "electron": "^10.1.3",
   },
   "cloudhub_electron_arch": "ia32"
}

2.Install 32-bit electron

The installed 32-bit electron version must be consistent with the electron version configured in package.json

npm i electron@10.1.3 --arch=ia32