智密腾讯云直播组建--直播间API对象--ZhimiTRTCLiveRoom

|-------------------------|------------------|
| 函数名 | 描述 |
| 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)
相关推荐
学Linux的语莫1 小时前
Ansible使用简介和基础使用
linux·运维·服务器·nginx·云计算·ansible
运维&陈同学6 小时前
【zookeeper03】消息队列与微服务之zookeeper集群部署
linux·微服务·zookeeper·云原生·消息队列·云计算·java-zookeeper
云计算DevOps-韩老师7 小时前
【网络云计算】2024第47周-每日【2024/11/21】周考-实操题-RAID6实操解析2
网络·云计算
dessler9 小时前
云计算&虚拟化-kvm-扩缩容cpu
linux·运维·云计算
学Linux的语莫9 小时前
Ansible Playbook剧本用法
linux·服务器·云计算·ansible
cloud studio AI应用13 小时前
腾讯云 AI 代码助手:产品研发过程的思考和方法论
人工智能·云计算·腾讯云
℘团子এ13 小时前
vue3中如何上传文件到腾讯云的桶(cosbrowser)
前端·javascript·腾讯云
何遇mirror1 天前
云原生基础-云计算概览
后端·云原生·云计算
嚯——哈哈1 天前
轻量云服务器:入门级云计算的最佳选择
运维·服务器·云计算
请你喝好果汁6411 天前
Kingfisher 下载ENA、NCBI SRA、AWS 和 Google Cloud)序列数据和元数据
云计算·aws