快速集成 SDK
准备
运行安装命令:
npm install cloudhub-rts-electron-sdk --save
开始
1. 获取 SDK
const cloudhubRtsElectron = require('cloudhub-rts-electron-sdk').default
2. 推流
// 获取推流对象
const rtsPusher = new cloudhubRtsElectron.RtsUpStream();
// 使用推流方法,详细参见RTS SDK
// 设备采集
rtsPusher.startCamera();
rtsPusher.startMicrophone();
// 设置摄像头
const deviceid = $("videoContent").getAttribute("deviceid");
const id = String(deviceid);
rtsPusher.setVideoDevice(id); //设置视频设备
// 播放本地视频
rtsPusher.setupLocalVideo($("playVideoBox")); // $("playVideoBox") 为视频播放的Element
// 停止摄像头的采集
rtsPusher.stopCamera(); // 停止摄像头的采集
推流监听流事件
...
rtsPusher.onEvent("onPushstateupdated", (data) => {
console.log("pushstateupdated", data);
});
rtsPusher.onEvent("onFirstlocalaudioframe", (data) => {
console.log("firstlocalaudioframe", data);
});
rtsPusher.onEvent("onLocalVideoStateChanged", (data) => {
console.log("localVideoStateChanged", data);
});
rtsPusher.onEvent("onLocalAudioStateChanged", (data) => {
console.log("localAudioStateChanged", data);
});
...
2. 拉流
// 获取拉流对象
const rtsPuller = new cloudhubRtsElectron.RtsDownStream();
// 开始拉流
rtsPuller.startPull(String(url)) // url 为拉流地址
rtsPuller.setupRemoteVideo($("playVideoBox")) // $("playVideoBox") 为视频播放的Element
// 停止拉流
rtsPuller.removeRemoteVideo() // 移除远程流
rtsPuller.stopPull() // 停止拉流
拉流监听流事件
...
rtsPuller.onEvent("onRtsstats", (data) => {
console.log("rtsstats", data);
});
rtsPuller.onEvent("onPullstateupdated", (data) => {
console.log("pullstateupdated", data);
});
rtsPuller.onEvent("onVideosizechanged", (data) => {
console.log("videosizechanged", data);
});
rtsPuller.onEvent("onRemoteVideoStateChanged", (data) => {
console.log("remoteVideoStateChanged", data);
});
...
其他说明
如果64位系统打包32位electron
- 在根目录添加配置项cloudhub_electron_arch
如果不配置cloudhub_electron_arch则按照系统版本
如果配置了以后,则会下载对应的addon
{
"name": "cloudhub-rts-electron-sdk-demo",
"dependencies": {
"cloudhub-rts-electron-sdk": "^1.0.0",
},
"devDependencies": {
"electron": "^10.1.3",
},
"cloudhub_electron_arch": "ia32"
}
- 安装32位electron
安装的32位的electron版本要和package.json里配置的electron版本一致
npm i electron@10.1.3 --arch=ia32