更新记录
5.0.0(2022-03-08)
- 升级uniapp基础库至3.3.10;
4.1.0(2021-12-20)
- 修复iOS和Android部分接口不一致bug;
4.0.0(2021-11-05)
- 升级API接口;
- 新增连麦监听接口;
- 新增跨房PK监听接口;
平台兼容性
Android | Android CPU类型 | iOS |
---|---|---|
适用版本区间:4.4 - 11.0 | armeabi-v7a:未测试,arm64-v8a:未测试,x86:未测试 | 适用版本区间:9 - 14 |
原生插件通用使用流程:
- 购买插件,选择该插件绑定的项目。
- 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
- 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
- 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
- 开发完毕后正式云打包
付费原生插件目前不支持离线打包。
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
-
使用 自定义基座 ,引入插件;
-
新建nvue文件,该插件必须在nvue中使用。在使用前,需要先加载插件。
<RY-TencentLiveRoom ref="liveRoom" v-bind:style = "{ width: playerWidth, height: playerHeight }"></RY-TencentLiveRoom>
说明:
可以通过修改width和height参数值的大小,来修改视频容器的大小。
- 腾讯云配置
注册或登录腾讯云账号,并进行实名认证。
- 点击 直播服务,开通直播功能,已开通,则忽略;
- 点击 Licence管理,进入Licence页面;
- 点击 "创建测试Licence"按钮,弹出测试Licence配置界面;
- 在"基本信息"中,输入"App Name" => 应用名称,"Package Name" => Android包名(需要和自定义基座的Android包名一致),"Bundle Id" => iOS包名(与自定义基座iOS的Bundle Id一致);
- 在"选择功能模块中",选中"直播推流(RTMP推流+RTC推流)"。
- 创建成功后,您会获取 Licence,您会获得两个字符串:一个字符串是 licenseURL,另一个字符串是解密 key。
注意:
请使用测试Licence开发测试,如果您需要购买正式Licence(信息填写错误无法修改,也可能无法退款),建议先联系我们技术支持微信(微信号: ruanyunkeji006)。
- 进入【云直播控制台】>【直播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