|-------------------------|------------------|
| 函数名 | 描述 |
| register | 注册SDK |
| isLogined | 是否登录SDK |
| addEventListener | 添加事件监听 |
| removeEventListener | 移除事件监听 |
| inRoomHook | 判断是否已经进入房间 |
| getUserId | 获取当前用户UserId |
| getRoomId | 获取当前房间Id |
| getSDKConfig | 获取SDK配置 |
| login | 登录SDK |
| loginWithoutIM | 登录SDK(但不登录腾讯云IM) |
| logout | 退出SDK |
| setProfile | 设置用户信息 |
| setLoggerEnable | 设置调试输出 |
| createRoom | 创建直播间 |
| joinRoom | 加入房间 |
| leaveRoom | 离开房间 |
| sendRoomTextMsg | 发送房间文本消息 |
| sendRoomCustomMsg | 发送房间自定义消息 |
| getUserInfo | 获取用户信息 |
| checkPermission | 获取权限 |
| startPreview | 开始预览本地画面 |
| stopPreview | 停止预览本地画面 |
| startPublish | 开始推流 |
| stopPublish | 停止推流 |
| getRoomVideoUrl | 获取直播间拉流连接 |
| startPlayRoomTRTC | 开始播放直播间 TRTC 流 |
| stopPlayRoomTRTC | 停止播放直播间 TRTC 流 |
| startPlayJoinAnchorTRTC | 开始播放直播间连麦 TRTC 流 |
| stopPlayJoinAnchorTRTC | 停止播放连麦 TRTC 流 |
| setMuted | 设置本地麦克风静音 |
| getMuted | 获取本地麦克风静音状态 |
| switchCamera | 切换摄像头 |
| getRoomOnlines | 获取房间在线人数 |
| getRoomUsers | 获取房间在线人员列表 |
| kickout | 踢人 |
| sendGift | 发送礼物 |
| muteUser | 禁言观众 |
| unmuteUser | 取消禁言观众 |
| requestJoinAnchor | 请求连麦 |
register - 注册SDK
该函数注册SDK与全局监听器,该函数请在App.vue的onLaunch生命周期中调用,确保每次应用生命周期有且仅有调用一次。
调用例子
javascript
import { ZhimiTRTCLiveRoom } from '@/utils/ZhimiTRTCLiveRoom'
export default {
onLaunch: function() {
ZhimiTRTCLiveRoom.register()
},
}
isLogined - 是否登录SDK
该函数用于判断是否登录SDK。请注意,该函数仅判断是否登录过SDK,对于腾讯云IM是否登录没有实质性作用,仅用于判断是否login过。
调用例子
javascript
import { ZhimiTRTCLiveRoom } from '@/utils/ZhimiTRTCLiveRoom'
const isLogined = ZhimiTRTCLiveRoom.isLogined()
if (isLogined) {
console.log('已经登录SDK')
} else {
console.log('未登录SDK')
}
addEventListener - 添加事件监听
该函数用于监听SDK事件。请注意,该函数会直接监听来自腾讯云IM与腾讯云TRTC的底层事件并且给予反馈,开发者需要根据腾讯云官方文档进行事件处理。
注意:一般不建议开发者自行监听,容易造成内存溢出与数据处理问题,可以参考二次封装的事件模型
函数定义
javascript
addEventListener(listener)
参数 | 描述 |
---|---|
listener | 回调函数,腾讯云IM与腾讯云TRTC的底层事件会直接反馈给该回调函数 |
调用例子
javascript
import { ZhimiTRTCLiveRoom } from '@/utils/ZhimiTRTCLiveRoom'
ZhimiTRTCLiveRoom.addEventListener(({type, data}) => {
// type => 事件名
// data => 回调数据
console.log('收到数据', type, data)
})
removeEventListener - 移除事件监听
该函数用于移除已经添加的事件监听
函数定义
javascript
removeEventListener(listener)
参数 | 描述 |
---|---|
listener | 回调函数,传入addEventListener的时候对应的函数 |
调用例子
javascript
import { ZhimiTRTCLiveRoom } from '@/utils/ZhimiTRTCLiveRoom'
const callback = ({type, data}) => {
// type => 事件名
// data => 回调数据
console.log('收到数据', type, data)
}
// 添加事件监听
ZhimiTRTCLiveRoom.addEventListener(callback)
// 移除事件监听
ZhimiTRTCLiveRoom.removeEventListener(callback)
inRoomHook - 判断是否已经进入房间
该函数用于判断是否已经进入了房间,如果已经进入房间则会返回房间的Id,否则抛出异常,请开发者调用的时候自行try catch处理异常
调用例子
javascript
import { ZhimiTRTCLiveRoom } from '@/utils/ZhimiTRTCLiveRoom'
try {
const roomId = await ZhimiTRTCLiveRoom.inRoomHook()
console.log(`用户已经进入房间,房间Id为${roomId}`)
} catch(e) {
console.log('用户未进入房间')
}
getUserId - 获取当前用户UserId
该函数用于获取当前登录的用户UserId
调用例子
javascript
import { ZhimiTRTCLiveRoom } from '@/utils/ZhimiTRTCLiveRoom'
const userId = ZhimiTRTCLiveRoom.getUserId()
console.log(`当前登录的用户UserId为${userId}`)
getRoomId - 获取当前房间Id
该函数用于获取当前用户进入的房间Id,该函数与inRoomHook的区别在于如果没有进入房间,该函数不会抛出异常
调用例子
javascript
import { ZhimiTRTCLiveRoom } from '@/utils/ZhimiTRTCLiveRoom'
const roomId = ZhimiTRTCLiveRoom.getRoomId()
console.log(`当前用户进入的房间Id为${roomId}`)
getSDKConfig - 获取SDK配置
该函数用于获取开发者在unicloud中的uni-config-center配置的参数信息,默认位于ZhimiTRTCLiveRoomApi/config.json
调用例子
javascript
import { ZhimiTRTCLiveRoom } from '@/utils/ZhimiTRTCLiveRoom'
const sdkConfig = ZhimiTRTCLiveRoom.getSDKConfig()
console.log('腾讯云IM APPID', 'SDK_APP_ID', sdkConfig.SDK_APP_ID)
console.log('推流域名', 'PUBLISH_DOMAIN', sdkConfig.PUBLISH_DOMAIN)
console.log('拉流域名', 'PLAY_DOMAIN', sdkConfig.PLAY_DOMAIN)
console.log('TRTC区域', 'TRTC_REGION', sdkConfig.TRTC_REGION)
console.log('TRTC BIZID', 'TRTC_BIZID', sdkConfig.TRTC_BIZID)
login - 登录SDK
该函数用于登录智密科技腾讯云直播SDK,该函数返回一个promise,true则表示登录成功,抛出异常则表示登录失败
函数定义
javascript
async login(userId)
参数 | 描述 |
---|---|
userId | 用户UserId,String类型,请使用数字,英文的格式,请不要使用特殊符号 |
调用例子
javascript
import { ZhimiTRTCLiveRoom } from '@/utils/ZhimiTRTCLiveRoom'
try {
await ZhimiTRTCLiveRoom.login('testUser')
console.log('登录成功')
} catch (e) {
console.log('登录失败')
}
loginWithoutIM - 登录SDK(但不登录腾讯云IM)
该函数用于登录智密科技腾讯云直播SDK,该函数并不会同步登录腾讯云IM,开发者需要通过其他方式登录IM,常见于与其他第三方插件配合调用的时候使用,比如您的App同步使用了腾讯云官方的TUICalling,而TUICalling底层使用的也是腾讯云IM,因此TUICalling的初始化可能会与本SDK冲突,此时您就可以使用loginWithoutIM登录本SDK。
函数定义
javascript
async loginWithoutIM(userId)
参数 | 描述 |
---|---|
userId | 用户UserId,String类型,请使用数字,英文的格式,请不要使用特殊符号 |
调用例子
javascript
import { ZhimiTRTCLiveRoom } from '@/utils/ZhimiTRTCLiveRoom'
try {
await ZhimiTRTCLiveRoom.login('testUser')
console.log('登录成功')
} catch (e) {
console.log('登录失败')
}
logout - 退出SDK
暂时无用
调用例子
javascript
import { ZhimiTRTCLiveRoom } from '@/utils/ZhimiTRTCLiveRoom'
ZhimiTRTCLiveRoom.logout()
setProfile - 设置用户信息
该函数用于设置当前用户的昵称,头像,自定义信息,这些数据会在直播间事件与获取用户信息的时候同步反馈
函数定义
javascript
async setProfile(nick, faceUrl, customData)
参数 | 描述 |
---|---|
nick | 用户昵称,字符串 |
faceUrl | 用户头像,字符串 |
customData | 自定义数据,json对象,请直接传入json对象,不要传字符串 |
调用例子
javascript
import { ZhimiTRTCLiveRoom } from '@/utils/ZhimiTRTCLiveRoom'
const isSuccess = await ZhimiTRTCLiveRoom.setProfile('用户昵称', '用户头像', { test: 1 })
if (isSuccess) {
console.log('操作成功')
} else {
console.log('操作失败')
}
setLoggerEnable - 设置调试输出
该函数用于设置是否输出一些sdk内部的调试输出
函数定义
javascript
setLoggerEnable(enable)
参数 | 描述 |
---|---|
enable | 是否开启调试输出 |
调用例子
javascript
import { ZhimiTRTCLiveRoom } from '@/utils/ZhimiTRTCLiveRoom'
// 开启调试输出
ZhimiTRTCLiveRoom.setloggerEnable(true)
createRoom - 创建直播间
该函数用于主播创建直播间,直播间的房间Id默认和创建者的用户Id保持一致
调用例子
javascript
import { ZhimiTRTCLiveRoom } from '@/utils/ZhimiTRTCLiveRoom'
try {
const isSuccess = await ZhimiTRTCLiveRoom.createRoom()
console.log('房间房间完成')
} catch(e) {
console.log('创建房间失败, 失败信息', e)
}
joinRoom - 加入房间
该函数用于观众加入直播间
函数定义
javascript
async joinRoom(roomId)
参数 | 描述 |
---|---|
roomId | 房间Id,String类型。数字,字母字符串,请勿传入特殊符号 |
调用例子
javascript
import { ZhimiTRTCLiveRoom } from '@/utils/ZhimiTRTCLiveRoom'
try {
const roomId = 'testUser'
const isSuccess = await ZhimiTRTCLiveRoom.joinRoom(roomId)
console.log('加入直播间成功')
} catch(e) {
console.log('加入直播间失败,失败信息', e)
}
leaveRoom - 离开房间
该函数用于观众离开房间,主播销毁房间。离开房间之后会自动结束所有的 trtc 推拉流。
调用例子
javascript
import { ZhimiTRTCLiveRoom } from '@/utils/ZhimiTRTCLiveRoom'
await ZhimiTRTCLiveRoom.leaveRoom()
console.log('退出房间完成')
sendRoomTextMsg - 发送房间文本消息
该函数用于用户发送房间文本消息,请勿用该方法实现其他奇怪的操作,如需要发送自定义的消息格式请使用sendRoomCustomMsg。
函数定义
javascript
async sendRoomTextMsg(text)
参数 | 描述 |
---|---|
text | 文本消息,String 类型,请直接传入文本,如有其他自定义消息要求请试用 sendRoomCustomMsg |
返回值 | 描述 |
---|---|
data | 聊天消息格式体 { nickName, sender, textElem.text } |
data字段 | 描述 |
---|---|
nickName | 发送者昵称 |
sender | 发送者用户 Id |
textElem.text | 文本内容 |
调用例子
javascript
import { ZhimiTRTCLiveRoom } from '@/utils/ZhimiTRTCLiveRoom'
try {
const { data } = await ZhimiTRTCLiveRoom.sendRoomTextMsg('test')
console.log('昵称', data.nickName)
console.log('用户 Id', data.sender)
console.log('聊天内容', data.textElem.text)
} catch(e) {
console.log('发送失败,失败信息', e)
}
sendRoomCustomMsg - 发送房间自定义消息
该函数用于用户发送房间自定义消息,常见用于发送连麦,pk,刷礼物,请求上麦之类的自定义消息。
函数定义
javascript
async sendRoomCustomMsg(cmd, data)
参数 | 描述 |
---|---|
cmd | 自定义命令,String 类型 |
data | 自定义消息,json |
返回值 | 描述 |
---|---|
data | 自定义消息格式体 { nickName, sender, textElem.text } |
data字段 | 描述 |
---|---|
nickName | 发送者昵称 |
sender | 发送者用户 Id |
textElem.text | 文本内容 |
调用例子
javascript
import { ZhimiTRTCLiveRoom } from '@/utils/ZhimiTRTCLiveRoom'
try {
const cmd = 'testCmd'
const { data } = await ZhimiTRTCLiveRoom.sendRoomCustomMsg(cmd, { test: true })
console.log('昵称', data.nickName)
console.log('用户 Id', data.sender)
console.log('消息内容', data.customElem.data)
} catch(e) {
console.log('发送失败,失败信息', e)
}
getUserInfo - 获取用户信息
该函数用于根据 UserId 获取用户信息,这里的用户信息指的是用 setProfile 设置的腾讯云 IM 中的用户信息,非客户自身业务系统的。
函数定义
javascript
async getUserInfo(userId)
参数 | 描述 |
---|---|
userId | 用户 Id,String 类型 |
返回值 | 描述 |
---|---|
data | 用户信息 { userID, nickName, faceUrl } |
data字段 | 描述 |
---|---|
nickName | 发送者昵称 |
userId | 发送者用户 Id |
faceUrl | 用户头像 |
调用例子
javascript
import { ZhimiTRTCLiveRoom } from '@/utils/ZhimiTRTCLiveRoom'
try {
const { data } = await ZhimiTRTCLiveRoom.getUserInfo('testUser')
console.log('用户信息', data)
} catch(e) {
console.log('获取失败', e)
}
checkPermission - 获取权限
该函数用于获取麦克风,摄像头权限,常见于主播开播之前检查直播权限是否授权。
调用例子
javascript
import { ZhimiTRTCLiveRoom } from '@/utils/ZhimiTRTCLiveRoom'
const isSuccess = await ZhimiTRTCLiveRoom.checkPermission()
if (isSuccess) {
console.log('获取权限 ok')
} else {
console.log('获取权限失败')
}
startPreview - 开始预览本地画面
该函数用于预览本地画面(主播/连麦)
函数定义
javascript
startPreview(ref)
参数 | 描述 |
---|---|
ref | trtc_video_view |
调用例子
javascript
// 此处是 template
<trtc_video_view ref="trtcView"/>
// 此处是 js
import { ZhimiTRTCLiveRoom } from '@/utils/ZhimiTRTCLiveRoom'
ZhimiTRTCLiveRoom.startPreview(this.$refs.trtcView)
stopPreview - 停止预览本地画面
该函数用于停止预览本地画面(主播/连麦)
函数定义
javascript
stopPreview(ref)
参数 | 描述 |
---|---|
ref | trtc_video_view |
调用例子
javascript
// 此处是 template
<trtc_video_view ref="trtcView"/>
// 此处是 js
import { ZhimiTRTCLiveRoom } from '@/utils/ZhimiTRTCLiveRoom'
ZhimiTRTCLiveRoom.stopPreview(this.$refs.trtcView)
startPublish - 开始推流
该函数用于开始推流本地画面至服务器(主播/连麦)。必须先开启预览才可以推流。
函数定义
javascript
startPublish(ref)
调用例子
javascript
// 此处是 template
<trtc_video_view ref="trtcView"/>
// 此处是 js
import { ZhimiTRTCLiveRoom } from '@/utils/ZhimiTRTCLiveRoom'
ZhimiTRTCLiveRoom.startPublish(this.$refs.trtcView)
stopPublish - 停止推流
该函数用于停止推流本地画面至服务器(主播/连麦)。必须先停止推流才可以关闭预览,否则对方会闪黑屏。
函数定义
javascript
stopPublish(ref)
调用例子
javascript
// 此处是 template
<trtc_video_view ref="trtcView"/>
// 此处是 js
import { ZhimiTRTCLiveRoom } from '@/utils/ZhimiTRTCLiveRoom'
ZhimiTRTCLiveRoom.stopPublish(this.$refs.trtcView)
getRoomVideoUrl - 获取直播间拉流连接
该函数用于获取直播间拉流连接,用于观众播放直播画面。
调用例子
javascript
import { ZhimiTRTCLiveRoom } from '@/utils/ZhimiTRTCLiveRoom'
const url = ZhimiTRTCLiveRoom.getRoomVideoUrl()
console.log('播放连接', url)
startPlayRoomTRTC - 开始播放直播间 TRTC 流
该函数用于播放直播间 TRTC 流,一般是连麦播放主播的 TRTC 流或者 PK 播放主播的 TRTC 流,可以达到一个 毫秒级别的延迟,几乎同步,但是费率很高,请参考腾讯云 trtc 官方计费文档。
腾讯云实时音视频(TRTC)计费文档:实时音视频 计费概述-购买指南-文档中心-腾讯云
函数定义
javascript
startPlayRoomTRTC(ref)
调用例子
javascript
// 此处是 template
<trtc_video_view ref="trtcView"/>
// 此处是 js
import { ZhimiTRTCLiveRoom } from '@/utils/ZhimiTRTCLiveRoom'
ZhimiTRTCLiveRoom.startPlayRoomTRTC(this.$refs.trtcView)
stopPlayRoomTRTC - 停止播放直播间 TRTC 流
该函数用于停止播放直播间 TRTC 流,断开连麦或者离开直播间,记得必须停止播放,否则后台可能还会拉流,从而造成不必要的计费。
函数定义
javascript
stopPlayRoomTRTC(ref)
调用例子
javascript
// 此处是 template
<trtc_video_view ref="trtcView"/>
// 此处是 js
import { ZhimiTRTCLiveRoom } from '@/utils/ZhimiTRTCLiveRoom'
ZhimiTRTCLiveRoom.stopPlayRoomTRTC(this.$refs.trtcView)
startPlayJoinAnchorTRTC - 开始播放直播间连麦 TRTC 流
该函数用于播放直播间 TRTC 流,一般是主播播放连麦观众的 TRTC 流,可以达到一个 毫秒级别的延迟,几乎同步,但是费率很高,请参考腾讯云 trtc 官方计费文档。
腾讯云实时音视频(TRTC)计费文档:实时音视频 计费概述-购买指南-文档中心-腾讯云
函数定义
javascript
startPlayJoinAnchorTRTC(ref)
调用例子
javascript
// 此处是 template
<trtc_video_view ref="trtcView"/>
// 此处是 js
import { ZhimiTRTCLiveRoom } from '@/utils/ZhimiTRTCLiveRoom'
ZhimiTRTCLiveRoom.startPlayJoinAnchorTRTC(this.$refs.trtcView)
stopPlayJoinAnchorTRTC - 停止播放连麦 TRTC 流
该函数用于停止播放连麦 TRTC 流,断开连麦或者离开直播间,记得必须停止播放,否则后台可能还会拉流,从而造成不必要的计费。
函数定义
javascript
stopPlayJoinAnchorTRTC(ref)
调用例子
javascript
// 此处是 template
<trtc_video_view ref="trtcView"/>
// 此处是 js
import { ZhimiTRTCLiveRoom } from '@/utils/ZhimiTRTCLiveRoom'
ZhimiTRTCLiveRoom.stopPlayJoinAnchorTRTC(this.$refs.trtcView)
setMuted - 设置本地麦克风静音
该函数用于设置本地麦克风是否静音,静音的情况下直播间的观众将无法听到您的声音。
函数定义
javascript
setMuted(muted)
参数 | 描述 |
---|---|
muted | 是否静音,boolean 类型,true = 静音,false = 取消静音 |
调用例子
javascript
import { ZhimiTRTCLiveRoom } from '@/utils/ZhimiTRTCLiveRoom'
ZhimiTRTCLiveRoom.setMuted(true)
console.log('静音本地麦克风 ok')
getMuted - 获取本地麦克风静音状态
该函数用于获取本地麦克风静音状态。
调用例子
javascript
import { ZhimiTRTCLiveRoom } from '@/utils/ZhimiTRTCLiveRoom'
const muted = ZhimiTRTCLiveRoom.getMuted()
console.log('当前静音状态', muted)
switchCamera - 切换摄像头
该函数用于切换摄像头画面。切换前置/后置摄像头
调用例子
javascript
import { ZhimiTRTCLiveRoom } from '@/utils/ZhimiTRTCLiveRoom'
ZhimiTRTCLiveRoom.switchCamera()
getRoomOnlines - 获取房间在线人数
该函数用于获取房间内在线人数,请注意,该函数有且只有在腾讯云 IM 旗舰版有准确的统计结果。具体原因参考以下连接。
即时通信 IM 获取直播群在线成员列表-服务端 API-文档中心-腾讯云
调用例子
javascript
import { ZhimiTRTCLiveRoom } from '@/utils/ZhimiTRTCLiveRoom'
const count = await ZhimiTRTCLiveRoom.getRoomOnlines()
console.log('在线人数', count)
getRoomUsers - 获取房间在线人员列表
该函数用于获取房间在线人员列表,请注意,该函数有且只有在腾讯云 IM 旗舰版有准确的统计结果。具体原因参考以下连接。
即时通信 IM 获取直播群在线成员列表-服务端 API-文档中心-腾讯云
调用例子
javascript
import { ZhimiTRTCLiveRoom } from '@/utils/ZhimiTRTCLiveRoom'
const list = await ZhimiTRTCLiveRoom.getRoomUsers()
console.log('在线人员列表', list)
kickout - 踢人
该函数用于将观众踢出直播间。
函数定义
javascript
async kickout(userId)
参数 | 描述 |
---|---|
userId | 用户 Id,String 类型 |
调用例子
javascript
import { ZhimiTRTCLiveRoom } from '@/utils/ZhimiTRTCLiveRoom'
try {
const userId = 'testUser'
await ZhimiTRTCLiveRoom.kickout(userId)
console.log('操作完成')
} catch(e) {
console.log('操作失败')
}
sendGift - 发送礼物
该函数用于发送礼物给主播,这里的特别之处在于这里的 gift 是开发者根据业务自行定义的,如果使用 demo 的话我们会预置 gif 的格式,开发者也可以自己根据需要调整扩展
函数定义
javascript
async sendGift(gift, count)
参数 | 描述 |
---|---|
gift | 礼物信息,json 对象,demo 中默认的格式为 { label, score, icon, url }, |
count | 礼物数量 |
调用例子
javascript
import { ZhimiTRTCLiveRoom } from '@/utils/ZhimiTRTCLiveRoom'
try {
const gifItem = { label: '许愿瓶', score: '98', icon: 'https://cdn.qiadoo.com/edu/uniapp/svga/x许愿瓶/许愿瓶透明礼物主图.png', url: 'https://cdn.qiadoo.com/edu/uniapp/svga/x许愿瓶/许愿瓶10s00.svga' },
await ZhimiTRTCLiveRoom.sendGift(gifItem, 1)
console.log('操作完成')
} catch(e) {
console.log('操作失败')
}
muteUser - 禁言观众
该函数用于禁言观众,在禁言的时间内用户调用 sendRoomTextMsg 将会报错,无法发送聊天内容。
函数定义
javascript
async muteUser(userId, muteTime)
调用例子
javascript
import { ZhimiTRTCLiveRoom } from '@/utils/ZhimiTRTCLiveRoom'
const userId = 'testUser'
const mutedTime = 60 * 60 // 意味着禁言 1 小时
ZhimiTRTCLiveRoom.muteUser(userId, mutedTime)
unmuteUser - 取消禁言观众
该函数用于取消观众的禁言,本质上底层就是设置禁言时间为 0.
函数定义
javascript
async unmuteUser(userId)
调用例子
javascript
import { ZhimiTRTCLiveRoom } from '@/utils/ZhimiTRTCLiveRoom'
const userId = 'testUser'
ZhimiTRTCLiveRoom.unmuteUser(userId)
requestJoinAnchor - 请求连麦
该函数用于观众请求连麦,请求连麦通过之后观众需要播放 trtc 流和推流,具体请参考 demo 实现。
函数定义
javascript
async requestJoinAnchor(type, reason = '', timeout = 30)
参数 | 描述 |
---|---|
type | 连麦类型,支持俩种连麦类型 LINKMIC_TYPE_AUDIO 语音连麦 LINKMIC_TYPE_VIDEO 视频连麦 |
reason | 连麦理由,一般为空,默认即可 |
timeout | 超时时间,一般是 30,默认即可 |
调用例子
javascript
调用例子
import { ZhimiTRTCLiveRoom, LINKMIC_TYPE_VIDEO } from '@/utils/ZhimiTRTCLiveRoom'
const type = LINKMIC_TYPE_VIDEO
// 请求视频连麦
const [accept, timeout] = await ZhimiTRTCLiveRoom.requestJoinAnchor(type)
if (timeout) {
console.log('请求超时')
} else {
console.log('主播响应连麦请求结果', accept)
}
responseJoinAnchor - 响应连麦
该函数用于主播响应观众的连麦请求,通过该函数确定是否同意观众连麦。
函数定义
javascript
async responseJoinAnchor(type, userId, agree, reason = '')
参数 | 描述 |
---|---|
type | 连麦类型,支持俩种连麦类型 LINKMIC_TYPE_AUDIO 语音连麦 LINKMIC_TYPE_VIDEO 视频连麦 |
userId | 请求连麦的观众 id,在接受到请求的事件中有反馈 |
agree | 是否同意连麦,boolean 类型 |
reason | 拒绝理由,一般为空即可 |
调用例子
javascript
import { ZhimiTRTCLiveRoom } from '@/utils/ZhimiTRTCLiveRoom'
// 这里假设已经通过onRequestJoinAnchorRev事件得到了请求对象
const req = {}
// 同意连麦
const [_, timeout] = await ZhimiTRTCLiveRoom.responseJoinAnchor(
req.type,
req.userId,
true
)
if (timeout) {
console.log('该请求已经超时')
return
}
console.log('操作完成')
enterJoinAnchor - 进入连麦
该函数用于观众进入连麦状态,会根据连麦的类型自动选择语音推流还是视频推流,并且自动开启对应的预览
函数定义
javascript
enterJoinAnchor(ref)
参数 | 描述 |
---|---|
ref | trtc_video_view |
调用例子
javascript
// 此处是 template
<trtc_video_view ref="trtcView"/>
// 此处是 js
import { ZhimiTRTCLiveRoom } from '@/utils/ZhimiTRTCLiveRoom'
ZhimiTRTCLiveRoom.enterJoinAnchor(this.$refs.trtcView)
exitJoinAnchor - 离开连麦
该函数用于观众离开连麦状态,会根据连麦的类型自动停止预览并且结束推流。
函数定义
javascript
exitJoinAnchor(ref)
调用例子
javascript
// 此处是 template
<trtc_video_view ref="trtcView"/>
// 此处是 js
import { ZhimiTRTCLiveRoom } from '@/utils/ZhimiTRTCLiveRoom'
ZhimiTRTCLiveRoom.exitJoinAnchor(this.$refs.trtcView)
kickoutJoinAnchor - 断开观众连麦
该函数用于主播主动断开观众连麦,该函数会自动断开观众的连麦并且重新进行直播间混流操作,同时观众也会接收到断开连麦的事件
函数定义
javascript
kickoutJoinAnchor(ref)
调用例子
javascript
// 此处是 template
<trtc_video_view ref="trtcView"/>
// 此处是 js
import { ZhimiTRTCLiveRoom } from '@/utils/ZhimiTRTCLiveRoom'
ZhimiTRTCLiveRoom.kickoutJoinAnchor(this.$refs.trtcView)