更新记录

5.0.0(2022-03-08)

  1. 升级uniapp基础库至3.3.10;

4.1.0(2021-12-20)

  1. 修复iOS和Android部分接口不一致bug;

4.0.0(2021-11-05)

  1. 升级API接口;
  2. 新增连麦监听接口;
  3. 新增跨房PK监听接口;
查看更多

平台兼容性

Android Android CPU类型 iOS
适用版本区间:4.4 - 11.0 armeabi-v7a:未测试,arm64-v8a:未测试,x86:未测试 适用版本区间:9 - 14

原生插件通用使用流程:

  1. 购买插件,选择该插件绑定的项目。
  2. 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
  3. 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
  4. 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
  5. 开发完毕后正式云打包

付费原生插件目前不支持离线打包。
Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android
iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios

注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择


腾讯云连麦互动直播

该模块可以实现腾讯云连麦互动,支持主播创建新的直播间开播,观众进入直播间观看、主播和观众进行视频连麦互动、两个不同房间的主播 PK 互动,每一个直播间都有一个不限制房间人数的聊天室,支持发送各种文本消息和自定义消息,自定义消息可用于实现弹幕、点赞和礼物。

技术支持

建议扫码添加我们技术支持,协助接入和开发。

联系我们 微信号 更多功能
联系我们
ruanyunkeji006

基础美颜
背景音乐

快速开始

步骤 1: 集成插件

  • 加载插件

插件名称: RY-TencentLiveRoom

  1. 使用 自定义基座 ,引入插件;

  2. 新建nvue文件,该插件必须在nvue中使用。在使用前,需要先加载插件。

<RY-TencentLiveRoom ref="liveRoom" v-bind:style = "{ width: playerWidth, height: playerHeight }"></RY-TencentLiveRoom>

说明:

可以通过修改width和height参数值的大小,来修改视频容器的大小。

  • 腾讯云配置

注册或登录腾讯云账号,并进行实名认证。

  1. 点击 直播服务,开通直播功能,已开通,则忽略;
  2. 点击 Licence管理,进入Licence页面;
  3. 点击 "创建测试Licence"按钮,弹出测试Licence配置界面;
  4. 在"基本信息"中,输入"App Name" => 应用名称,"Package Name" => Android包名(需要和自定义基座的Android包名一致),"Bundle Id" => iOS包名(与自定义基座iOS的Bundle Id一致);
  5. 在"选择功能模块中",选中"直播推流(RTMP推流+RTC推流)"。
  6. 创建成功后,您会获取 Licence,您会获得两个字符串:一个字符串是 licenseURL,另一个字符串是解密 key。

注意:

请使用测试Licence开发测试,如果您需要购买正式Licence(信息填写错误无法修改,也可能无法退款),建议先联系我们技术支持微信(微信号: ruanyunkeji006)。

  1. 进入【云直播控制台】>【直播SDK】>【应用管理】,单击【创建应用】。待应用创建完成后,记录其 sdkAppId 信息。

说明:

该操作的目的是创建一个即时通信 IM 应用,并将当前直播账号和该即时通信 IM 应用绑定起来。即时通信 IM 应用能为小直播 App 提供聊天室和连麦互动的能力。

步骤 2: 开始使用插件

首先调用 init 初始化推流组件。该对象可以指定一些高级配置参数,但一般情况下我们不建议您操作该对象,因为我们已经在其内部配置好了所有需要校调的参数。之后会自动再创建一个 LivePush 对象,该对象负责完成推流的主要工作。

this.$refs.liveRoom.init({
    licence: self.licence
}, ret => {
    console.log(ret);
});

步骤 3: 设置互动直播监听器

调用 setLiveRoomListener 设置互动直播监听器,用于返回直播过程中各个 回调事件

this.$refs.liveRoom.setLiveRoomListener({}, ret => {
    console.log(ret);
});

步骤 4: 登录房间服务

LiveRoom 单靠一个终端的组件无法独自运行,它依赖一个后台服务为其实现房间管理和状态协调,这个后台服务我们称之为房间服务(RoomService)。而要使用这个房间服务,LiveRoom 就需要先进行登录(login)。

LiveRoom的 login 函数相关的参数:

参数 类型 填写方案
sdkAppId 整数类型 当前应用的 sdkAppId
userId 字符串 当前用户在您的帐号系统中的Id
userName 字符串 用户名(昵称)
userAvatar 字符串 用户头像的url地址
userSig 字符串 登录签名

说明:

  • 由于 login 是一个需要跟后台服务器通讯的过程,建议等待 login 函数的异步回调后再调用其他函数。
  • 后台接口限制并发为每秒100次请求,若您有高并发请求请提前 联系我们 处理,避免影响服务调用。

步骤 5: 获取房间列表(非必需)

说明:

如果您希望使用自己的房间列表,该步骤可跳过,但需要您在 步骤 7 中自行指定 roomId。为避免房间号重复,建议使用主播的 userId 作为 roomId。

不管是主播还是观众都需要有一个房间列表,调用 LiveRoom 的 getRoomList 接口可以获得一个简单的房间列表:

  • 当主播通过 [createRoom]() 创建一个新房间时,房间列表中会相应地增加一条新的房间信息。
  • 当主播通过 [exitRoom]() 退出房间时,房间列表中会移除该房间。

列表中每个房间都有对应的 roomInfo,由主播通过 createRoom 创建房间时传入,为提高扩展性,建议将 roomInfo 定义为 JSON 格式。

步骤 6: 主播开播

主播开播前,需要先调用 LiveRoom 中的 startLocalPreview 接口开启本地摄像头预览,该函数需要传入视图对象的坐标和大小(rect参数)用于显示摄像头的视频影像,这期间 LiveRoom 会申请摄像头使用权限。同时,主播也可以对着摄像头调整美颜和美白的具体效果。 然后调用 createRoom 接口,LiveRoom 会在后台的房间列表中新建一个直播间,同时主播端会进入直播状态。

说明:

为避免房间号重复,建议使用主播的 userId 作为 roomId。如果您不手动设置 roomId,后台将会自动为您分配一个 roomId。 如果您想要管理房间列表,可以先由您的服务器确定 roomId,再通过 createRoom、enterRoom 和 exitRoom 接口使用 LiveRoom 的连麦能力。

步骤 7: 观看直播

观众通过 LiveRoom 中的 enterRoom 接口可以进入直播间观看视频直播,enterRoom 函数需要通过rect参数传入视图对象坐标和大小用于显示直播流的视频影像。

进入房间后,通过调用 getAudienceList 接口可以获取观众列表。如果少于30名观众,列表会展示全部观众信息。如果多于30名观众,列表仅展示新进入房间的30名观众的信息。

步骤 8: 弹幕消息

LiveRoom 包装了 IM 的消息发送接口,您可以通过 sendRoomTextMsg 函数发送普通的文本消息(用于弹幕),也可以通过 sendRoomCustomMsg 发送自定义消息(用于点赞,送花等等)。

注意:

腾讯云 IM 的直播聊天室,每秒钟最多可以收取40条的消息。如果您以高于40条/次的速度刷新 UI 上的弹幕界面,很容易导致 CPU 100%,请注意控制刷新频率,避免高频刷新。

步骤 9: 观众与主播连麦

步骤 角色 详情
第一步 观众 观众调用 setLinkMicListener 设置连麦监听器,并调用 requestJoinAnchor 向主播发起连麦请求。
第二步 主播 主播会收到 setLiveRoomListener监听器 onRequestJoinAnchor 通知,之后可以展示一个 UI 提示,询问主播要不要接受连麦。
第三步 主播 主播调用 responseJoinAnchor 确定是否接受观众的连麦请求。
第四步 观众 观众在setLinkMicListener连麦监听器里接收回调通知,得知请求是否被同意。
第五步 观众 观众如果请求被同意,则调用 startLocalPreview 开启本地摄像头,如果 App 还没有取得摄像头和麦克风权限,会触发 UI 提示用户授权摄像头和麦克风的使用权限。
第六步 观众 观众调用 joinAnchor 正式进入连麦状态。
第七步 主播 当观众进入连麦状态后,主播就会收到 setLiveRoomListener互动直播监听器的 onAnchorEnter 通知。
第八步 主播 主播调用 startRemoteView 就可以看到连麦观众的视频画面。
第九步 观众 如果直播间里已经有其他观众正在跟主播进行连麦,那么新加入的这位连麦观众也会收到 onAnchorJoin 通知,用于展示 startRemoteView 其他连麦者的视频画面。
第九步 主播或观众 主播或观众随时都可以通过 quitJoinAnchor 接口退出连麦状态,同时,主播还可以通过 kickoutJoinAnchor 接口移除连麦观众。

说明:

LiveRoom 在设计上最多支持10人同时连麦,但出于兼容低端 Android 终端和实际体验效果的考虑,建议将同时连麦人数控制在6人以下。

步骤 10: 主播间跨房间 PK

主播间跨房 PK 常被用于活跃直播平台的氛围,提升打赏频率,对平台的主播人数有一定要求。目前常见的主播 PK 方式是将所有愿意 PK 的主播“圈”在一起,再后台进行随机配对,每次 PK 都有一定时间要求,例如5分钟,超过后即结束 PK 状态。 由于我们暂时未在 RY-TencentLiveRoom 的房间服务里加入配对逻辑,因此目前仅提供了基于客户端 API 接口的简单 PK 流程,您可以通过即时通信 IM 服务的消息下发 REST API 接口,由您的配对服务器,将配对开始、配对结束等指令发送给指定的主播,从而实现服务器控制的目的。如果采用此种控制方式,下述步骤中的第三步实现为默认接受即可。

步骤 角色 详情
第一步 主播 A 主播 A 调用 setRoomPKListener 设置主播PK监听器,并调用 requestRoomPK 向主播 B 发起连麦请求。
第二步 主播 B 主播 B 会收到 setLiveRoomListener监听器 onRequestRoomPK(AnchorInfo) 回调通知。
第三步 主播 B 主播 B 调用 responseRoomPK 确定是否接受主播 A 的 PK 请求。如果采用服务器配对的 PK 方案,此处可以默认接受,不需要由主播 B 来决策。
第四步 主播 B 主播 B 在接受主播 A 的请求后,即可调用 startRemoteView 来显示主播 A 的视频画面。
第五步 主播 A 主播 A 会收到setRoomPKListener主播PK监听器的回调通知,可以得知请求是否被同意,如果请求被同意,则可以调用 startRemoteView 显示主播 B 的视频画面。
第六步 主播 A或 B 主播 A 或 B 均可以通过调用 quitRoomPK 接口结束 PK 状态。

更多功能

  • 基础美颜
  • 背景音乐

扫码添加, 获取技术支持:

技术支持



微信号: ruanyunkeji006

隐私、权限声明

1. 本插件需要申请的系统权限列表:

Android: "android.permission.INTERNET", "android.permission.ACCESS_NETWORK_STATE", "android.permission.ACCESS_WIFI_STATE", "android.permission.SYSTEM_ALERT_WINDOW", "android.permission.WRITE_EXTERNAL_STORAGE", "android.permission.READ_EXTERNAL_STORAGE" iOS: 无

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件使用腾讯云移动直播SDK会采集数据,详情可参考: https://cloud.tencent.com/document/product/454/14606

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问