SDK使用
- 检测浏览器是否兼容SDK。
try {
let isMatch = await ISDPRTC.checkSystemRequirements()
if(isMatch) {
console.log(‘兼容’)
}
} ecatch(error) {
console.log(‘不兼容’)
}
2.创建客户端。
let config = {appId, domain}
let client = ISDPRTC.createClient(config)
domain:域名。
appId:应用ID,只有App ID相同的应用程序才能进入同一个房间进行互通。
说明:
domain和appId请提交工单申请。
3.加入房间。
JoinConfig option = {userId:userId, signature:signature, ctime:ctime, host:host, port:port, role:role, 驼峰结构: userName }
async joinRoom() {
try{
await client.join(channel, option)
console.log(‘加入成功’)
} catch(e){
console.log(‘加入失败’)
}
}
- userId:本端用户唯一标识。
- signature:鉴权签名字串,应用开发者需要向远端服务器获取鉴权签名。
- host: 媒体服务器接入IP
- port: 媒体服务器接入端口
- userRole: 角色,可以标识媒体方向,取值如下:
0:publisher。
- channel:房间ID,房间唯一标识。
加入房间成功后,对端会收到“peer-join”事件。
4.创建本地流并发布。
Stream stream = ISDPRTC.createStream({audio:true,microphoneId:xxx,video:true,cameraId:yyy})
stream.initialize().then(() => {
client.publish(stream)
stream.play(elementId,{muted:true}) //播放本地流
})
5.当收到服务器发送的“stream-added”事件通知时,可以订阅远端媒体。
client.on('stream-added’, (event) => {
const stream = event.stream
client.subscribe(stream,{video:true, audio:true})
}
订阅完成之后,本端会收到“stream-subscribed”事件通知,可设置对端窗口,播放对端音视频。
client.on('stream-subscribed', (event) => {
const stream = event.stream
stream.play(elementId, { objectFit: contain, muted: true})
}
- elementId:HTML <div>标签 ID。
- 播放选项参数:
objectFit:必选,string类型,取值包括contain、cover和fill。
muted:可选,boolean类型,true表示静音,false表示不静音,默认值为false。
若是不想观看对端,则可取消订阅对端音视频:
client.unsubscribe(stream)
6.当远端离开房间,本端会收到“peer-leave”事件通知,清理远端用户的资源。
client.on('peer-leave', (event) => {
// just do something…
}
event.userId:对端用户标识,通过监听“peer-leave”事件获得。
远端用户退出,本端同时会收到“stream-removed”事件通知,可在事件处理函数中,关掉视频窗口。
client.on('stream-removed', (event) => {
event.stream.close()
}
通过stream对象调用close()方法,该方法会移除之前用“play”创建的video标签元素并关闭摄像头、麦克风。
7.本端离开房间。
client.leave()
当音视频通话结束时,调用此接口离开房间。
至此,音视频通话基本流程可以成功运行。