更新记录
1.4(2021-01-22)
更新hbuildx 3.x版本打包问题
1.3(2020-12-28)
更新SDK
1.1(2020-12-25)
直播组件:新增纯音频推流设置方法
查看更多平台兼容性
Android | Android CPU类型 | iOS |
---|---|---|
适用版本区间:5.0 - 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原生插件配置”->”云端插件“列表中删除该插件重新选择
使用方法
只能在nvue页面中使用自定义组件,目前已满足基本的视频通话与直播推流,其他功能待添加
- 放置视频画面承载组件, uniqueId必填唯一! 如下一对一视频通话html布局,多人视频同理
<!-- 大视频画面,显示对方 -->
<tx-video-view uniqueId="max" style='flex:1'></tx-video-view>
<!-- 显示到右上角 -->
<tx-video-view uniqueId="min" style="width:200rpx;height:300rpx;position:absolute;right:16rpx;top:16rpx;" ></tx-video-view>
- 进入房间
const trtcCloud = uni.requireNativePlugin('Lyuan-TrtcPro-TRTCCloud');
trtcCloud.enterRoom({
appId: number,
appKey: string,
userSig:string ,//appKey, userSig二选一
roomId: number,
userId: string
},
e => {
console.log('回调通知,具体回调查看官方文档',e);
switch (e.type) {
case 'onUserVideoAvailable':
if (e.available) {
//摄像头可用,显示对方画面
trtcCloud.startRemoteView(e.userId, 'max');
} else {
//对方画面不可用,停止显示
trtcCloud.stopRemoteView(e.userId);
}
break;
}
}
);
//检查权限,然后打开画面
trtcCloud.checkPermission(success => {
if (success) {
trtcCloud.startLocalPreview('min');
trtcCloud.startLocalAudio();
} else {
console.log('您没有授权相机、麦克风权限!');
}
});
// 退出房间
trtcCloud.exitRoom();
trtcCloud.destroySharedInstance();
trtcCloud方法说明
方法 | 说明 |
---|---|
checkPermission(callback) | 检查摄像头、麦克风权限 |
startLocalPreview(uniqueId) | 打开本地画面 |
startLocalAudio() | 打开本地麦克风 |
startRemoteView(userId,uniqueId) | 打开远程画面 |
enterRoom({appId,appKey,userSig,roomId,userId,streamId,role,scene},callback) | 进入房间 |
exitRoom() | 退出房间 |
destroySharedInstance() | 销毁实例 |
switchCamera() | 切换摄像头 |
setAudioRoute(0/1) | 切换听筒1,扬声器0 |
直播推流
-
推流承载组件
<tx-live-pusher ref="livePusher" @statechange="statechange"></tx-live-pusher>
-
使用方法, onReady后可使用
//注册,必填,需在腾讯云移动直播购买 this.$refs.livePusher.setLicence(key,url); //开始推流 this.$refs.livePusher.start('rtmp://', success => { if(success){ //推流成功 }else{ //失败 } }); //设置是否纯音频推流, 需在start推流前执行 this.$refs.livePusher.enablePureAudioPush(true/false) //停止推流 this.$refs.livePusher.stop() //暂停推流 this.$refs.livePusher.pause() //恢复推流 this.$refs.livePusher.resume() //开启预览 this.$refs.livePusher.startPreview() //停止预览 this.$refs.livePusher.stopPreview() //切换摄像头 this.$refs.livePusher.switchCamera() //切换清晰度:标清1,高清2,超高清3 this.$refs.livePusher.setVideoQuality(number) //回调通知 statechange(e) { if (e.type == 'onNetStatus') { } else if (e.type == 'onError' && e.detail) { console.log('错误:' + e.detail); } else console.log('statechange', e.detail); },
-
横屏推流
onReady(){
plus.screen.lockOrientation('landscape-primary');
this.$refs.livePusher.setHomeOrientation(0);
this.$refs.livePusher.setLicence('','');
this.$refs.livePusher.startPreview();
},
onBackPress(e) {
//返回上页, 恢复竖屏
plus.screen.lockOrientation('portrait-primary');
}