更新记录

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

原生插件通用使用流程:

  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原生插件配置”->”云端插件“列表中删除该插件重新选择


使用方法

只能在nvue页面中使用自定义组件,目前已满足基本的视频通话与直播推流,其他功能待添加
  1. 放置视频画面承载组件, 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>
  1. 进入房间
   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');
}

隐私、权限声明

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

<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.RECORD_AUDIO" /> <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> <uses-permission android:name="android.permission.BLUETOOTH" /> <uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-feature android:name="android.hardware.camera" /> <uses-feature android:name="android.hardware.camera.autofocus" />

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

插件使用的 腾讯云TRTC实时音视频 SDK会采集数据,详情可参考:https://cloud.tencent.com/document/product/647/16788

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

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