CloudHub 文档中心
下载中心 文档中心

RTS 实时流直播


快速集成 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

  1. 在根目录添加配置项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"
}
  1. 安装32位electron

安装的32位的electron版本要和package.json里配置的electron版本一致

npm i electron@10.1.3 --arch=ia32