快速集成 SDK
准备
运行安装命令:
npm install cloudhub-electron-sdk --save
开始
1. 获取 SDK
// es6:
import RtcEngine from 'cloudhub-electron-sdk';
// commonjs:
const RtcEngine = require('cloudhub-electron-sdk').default
const rtcEngine = RtcEngine || {};
2. 初始化
rtcEngine.initialize(appId);
// rtcEngine.enableVideo(); 如果加入频道前调用 enableVideo,将会自动启用视频模块
参数详见initialize
3. 加入频道
rtcEngine.joinChannel('', channelId, {}, '');
参数详见joinChannel
4. 加入频道后发布本地音视频
rtcEngine.on('onJoinChannel', data => {
rtcEngine.enableLocalVideo(true);
rtcEngine.enableLocalAudio(true);
rtcEngine.publish();
});
5. 订阅远端用户
const videoContainerEle = document.getElementById('videoContainer');
rtcEngine.on('onRemoteVideoStateChanged', data => {
const { state, uid, reason, streamId } = data;
const videoId = `${streamId}-player`;
let videoEle = document.getElementById(videoId);
// 远端流移除
// 如果播放元素存在就移除远端流
if (state === 0) {
if (videoEle) {
rtcEngine.removeRemoteVideo(uid, streamId);
videoContainerEle.removeChild(videoEle);
}
}
// 远端流添加
// 如果播放元素不存在就开始创建播放元素并播放远端视频
if (state === 1) {
if (!videoEle) {
videoEle = document.createElement('div')
videoEle.id = videoId;
videoContainerEle.appendChild(videoEle);
rtcEngine.setupRemoteVideo(uid, streamId, videoEle);
}
}
});
6. 离开频道
rtcEngine.leaveChannel();
其他说明
如果64位系统打包32位electron
1.在根目录添加配置项cloudhub_electron_arch
如果不配置cloudhub_electron_arch则按照系统版本
如果配置了以后,则会下载对应的addon
{
"name": "cloudhub-electron-sdk-demo",
"dependencies": {
"cloudhub-electron-sdk": "^3.3.9",
},
"devDependencies": {
"electron": "^10.1.3",
},
"cloudhub_electron_arch": "ia32"
}
2.安装32位electron
安装的32位的electron版本要和package.json里配置的electron版本一致
npm i electron@10.1.3 --arch=ia32