智密腾讯云直播组建--直播间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)
相关推荐
GDAL3 小时前
全面讲解GNU:从起源到应用
服务器·云计算·gnu
九河云8 小时前
确保在AWS上的资源安全:构建坚不可摧的云安全防线
安全·云计算·aws
KubeSphere 云原生9 小时前
云原生周刊:Prometheus 3.0 Beta 发布|2024.09.16
云计算·k8s·容器平台·kubesphere
Jasonakeke17 小时前
本地镜像发布到阿里云
阿里云·云计算
奔跑的蜗牛fzq1 天前
阿里云专业翻译api对接
阿里云·云计算
仙剑魔尊重楼1 天前
FL Studio 24.1.1.4285中文破解完整版免费下载FL 2024注册密钥完整版crack百度云安装包下载
云计算·百度云·fl studio·fl studio 21·fl studio 24
风清已存在1 天前
阿里云OSS与IOT使用详解
物联网·阿里云·云计算
阿里云视频云1 天前
信通院发布首个《大模型媒体生产与处理》标准,阿里云智能媒体服务作为业界首家“卓越级”通过
阿里云·云计算·媒体
阿里云视频云2 天前
直播标准权威发布,阿里云RTS获首批卓越级评估认证
阿里云·云计算
MGT_97962 天前
ESP01的AT指令连接到阿里云平台
嵌入式硬件·物联网·阿里云·云计算