集成方式
目前我们提供两种音视频的接入方式,分别是PC Agent
和WebRTC
。
PC Agent
和WebRTC
两种接入方式是相互独立的,没有任何依赖关系,开发者在接入音视频的时候选择任一种SDK的方式即可
下面我们先大致介绍一下各自的兼容性要求,再介绍一下各自的集成方式
兼容性要求
PC Agent
WebRTC
SDK集成方式
PC Agent
和 WebRTC
的集成方式大致相同,都依赖IM账号体系,所以需要首先下载 NIM SDK
下载SDK
官网 SDK 下载入口。
目录结构介绍
- 如果要在浏览器里面使用 SDK, 相应的 JS 文件都在
js
目录下.
- 如果要在浏览器里面使用 SDK, 相应的 JS 文件都在
引入SDK
IM功能引入,请引入
NIM_Web_NIM_v.js
,通过NIM
来获取引用PC Agent集成方式:
- 请引入
NIM_Web_Netcall_v.js
, 通过Netcall
来获取引用 - 调用
NIM.use(Netcall)
来加载实时音视频插件
- 请引入
WebRTC集成方式:
- 请引入
NIM_Web_WebRTC_v.js
, 通过WebRTC
来获取引用 - 调用
NIM.use(WebRTC)
来加载实时音视频插件
- 请引入
总体接口介绍
引入SDK脚本并且实例化之后,得到一个SDK工具集合: netcall
(自定义变量名),下面我们大致介绍一下最常用的一些接口作用,具体的参数配置请参照后面具体的API介绍
- 通话控制相关
接口名 | 说明 |
---|---|
netcall.call | 主叫发起通话 |
netcall.response | 被叫响应通话 |
netcall.hangup | 挂断通话 |
netcall.control | 通话过程中发送控制指令: 例如开关摄像头、麦克风,音视频互相切换,没有可用设备等等详情 |
netcall.createChannel | 多人通话:创建房间 |
netcall.joinChannel | 多人通话:加入房间 |
netcall.leaveChannel | 多人通话:离开房间 |
- 设备相关
接口名 | 说明 |
---|---|
netcall.getDevicesOfType | 获取设备列表 |
netcall.startDevice({type:Netcall.DEVICE_TYPE_VIDEO}) | 开启摄像头,将本地视频发送对端 |
netcall.startDevice({type:Netcall.DEVICE_TYPE_AUDIO_IN}) | 开启麦克风,将本地音频发送到对端 |
netcall.stopDevice(Netcall.DEVICE_TYPE_VIDEO) | 关闭摄像头,停止向对端发送本地视频 |
netcall.stopDevice(Netcall.DEVICE_TYPE_AUDIO_IN) | 关闭麦克风,停止向对端发送本地音频 |
- 采集音视频相关
接口名 | 说明 |
---|---|
netcall.setCaptureVolume | 采集音量调整,可以控制发送到对端的音频音量的最大值 |
netcall.getCaptureVolume | 采集音量设置查询,可以获取设置的送到对端的音频音量的最大值 |
netcall.getLocalAudioVolume | 采集音量实际大小查询,可以查询当前麦克风采集的实时音量 |
- 播放声音画面相关: (己方本地操作,对端不受影响)
接口名 | 说明 |
---|---|
netcall.startLocalStream | 开启自己画面 |
netcall.stopLocalStream | 关闭自己画面 |
netcall.startRemoteStream | 开启对方画面 |
netcall.stopRemoteStream | 关闭对方画面 |
netcall.startDevice({type: Netcall.DEVICE_TYPE_AUDIO_OUT_CHAT}) | 开启自己声音 |
netcall.stopDevice(Netcall.DEVICE_TYPE_AUDIO_OUT_LOCAL) | 关闭自己声音 |
netcall.startDevice({type: Netcall.DEVICE_TYPE_AUDIO_OUT_CHAT}) | 开启对方声音 |
netcall.stopDevice(Netcall.DEVICE_TYPE_AUDIO_OUT_CHAT) | 关闭对方声音 |
netcall.setPlayVolume | 播放音量调整 |
- 录制相关
接口名 | 说明 |
---|---|
netcall.startRecordMp4 | 开启单人视频录制 |
netcall.startRecordAac | 开启多人混音录制 |
netcall.stopRecordMp4 | 结束视频录制 |
netcall.stopRecordAac | 结束混音录制 |
- 事件通知注册与回调相关
接口名 | 说明 |
---|---|
netcall.on('beCalling', obj => {}) | 收到呼叫通知 |
netcall.on('callAccepted', obj => {}) | 主叫收到被叫应答通知: 接受 |
netcall.on('callRejected', obj => {}) | 主叫收到被叫应答通知: 拒绝 |
netcall.on('control', obj => {}) | 通话进行中收到对端的控制通知 |
netcall.on('hangup', obj => {}) | 收到挂断通知 |
netcall.on('joinChannel', obj => {}) | 收到用户加入房间的通知 |
netcall.on('leaveChannel', obj => {}) | 收到用户离开房间的通知 |
netcall.on('audioVolume', obj => {}) | 当前所有参与通话者的音量大小实时回调通知 |
netcall.on('callerAckSync', obj => {}) | 其他端已处理的通知 |
netcall.on('error', obj => {}) | sdk内部错误或者服务器主动挂断的通知 |
本篇文档内容是否对您有帮助?
有帮助
我要吐槽
此文档对你是否有帮助
×
有帮助
我要吐槽
×