更新记录
1.0.4(2022-01-21)
修复Android端加入房间时,没有申请权限的Bug
1.0.3(2022-01-15)
1.修复ios版本引用插件后打包失败问题; 2.去除ios包中多余的TXLiteAVSDK_TRTC.a文件;
1.0.2(2022-01-12)
新增ios端视频听话功能
查看更多平台兼容性
| Android | Android CPU类型 | iOS | 
|---|---|---|
| 适用版本区间:5.0 - 11.0 | armeabi-v7a:支持,arm64-v8a:支持,x86:未测试 | 适用版本区间:9 - 15 | 
原生插件通用使用流程:
- 购买插件,选择该插件绑定的项目。
 - 在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原生插件配置”->”云端插件“列表中删除该插件重新选择
使用说明
1.本插件基于腾讯实时音视频封装,接口调用和返回参数和腾讯保持一致
2.使用本插件,需要单独购买腾讯实时音视频服务  
只能在nvue页面中使用自定义组件,目前已满足基本的视频通话
<template>
    <div>
        <div class="btn-group">
            <button class="my-button" @click="joinPersionVideo">加入房间1</button>
            <button class="my-button" @click="exitPersionVideo">退出房间</button>
            <button class="my-button" @click="joinPersionVideo2">加入房间2</button>
        </div>
        <div class="btn-group">
            <button class="my-button" @click="addListener">添加事件</button>
            <button class="my-button" @click="removeListener">移除事件</button>
        </div>
        <div class="video-group">
            <excbyte-trtc-video class="video-item" userId="807512"></excbyte-trtc-video>
            <excbyte-trtc-video class="video-item" userId="1234"></excbyte-trtc-video>
        </div>
    </div>
</template>
<script>
    import ExcbyteTrtc from '../../common/ExcbyteTrtc.js'
    export default {
        data() {
            return {
            }
        },
        onLoad() {
            this.initTrtc()
        },
        methods: {
            initTrtc() {
                ExcbyteTrtc.sharedInstance();
                ExcbyteTrtc.addListener("onUserVideoAvailable", function(param) { //注册远程用户视频开启监听
                    console.log("onUserVideoAvailable==" + JSON.stringify(param));
                    uni.showToast({
                        title: JSON.stringify(param),
                        icon: 'none'
                    })
                    ExcbyteTrtc.startRemoteView(param.userId);
                });
                ExcbyteTrtc.addListener("onError", function(param) { //注册错误监听监听
                    uni.showToast({
                        title: JSON.stringify(param),
                        icon: 'none'
                    })
                });
            },
            async joinPersionVideo() {
                let userSig = ExcbyteTrtc.creatUserSig(1400390306,
                    "451ad5bd80bc9560c63461b316c2f9ba0fd6f273070461ae5e2afeabdf3da719", "1234");
                ExcbyteTrtc.enterRoom({
                    sdkAppId: 1400390306,
                    userId: "1234",
                    userSig: userSig,
                    roomId: 17509,
                    role: 20
                }, ExcbyteTrtc.TRTC_APP_SCENE_VIDEOCALL);
                ExcbyteTrtc.startLocalPreview(true); //开启视频
                ExcbyteTrtc.enableAudioVolumeEvaluation(300);
                ExcbyteTrtc.startLocalAudio(); //开启本地语音
                ExcbyteTrtc.enableScreenOn(); //屏幕常亮
                ExcbyteTrtc.startPlayCall(); //呼叫声音
            },
            async joinPersionVideo2() {
                let userSig = ExcbyteTrtc.creatUserSig(1400390306,
                    "451ad5bd80bc9560c63461b116c2f9ba0fd6f273070461ae5e2afeabdf3da719", "807512");
                ExcbyteTrtc.enterRoom({
                    sdkAppId: 1400390306,
                    userId: "807512",
                    userSig: userSig,
                    roomId: 17509,
                    role: 20
                }, ExcbyteTrtc.TRTC_APP_SCENE_VIDEOCALL);
                ExcbyteTrtc.startLocalPreview(true); //开启视频
                ExcbyteTrtc.enableAudioVolumeEvaluation(300);
                ExcbyteTrtc.startLocalAudio(); //开启本地语音
                ExcbyteTrtc.enableScreenOn(); //屏幕常亮
            },
            async exitPersionVideo() {
                ExcbyteTrtc.stopPlayCall(); //呼叫声音
                ExcbyteTrtc.destroySharedInstance();
            },
            removeListener() {
                ExcbyteTrtc.removeListener("onNetworkQuality")
            },
            addListener(){
                ExcbyteTrtc.addListener("onNetworkQuality",(params)=>{
                    uni.showToast({
                        title:JSON.stringify(params),
                        icon:'none'
                    })
                })
            }
        }
    }
</script>
<style>
    .video-group {
        flex-direction: row;
    }
    .video-item {
        flex: 1;
        height: 200px;
        background: #ff0000;
        margin: 10px;
    }
    .btn-group {
        flex-direction: row;
    }
    .my-button {
        margin: 10px;
        background: #00ff00;
        text-align: center;
        width: 200px;
        height: 40px;
    }
</style>
所有接口和常量(ExcbyteTrtc.js),具体含义参考腾讯实时音视频文档
var ExcbyteTrtc = uni.requireNativePlugin("excbyte-trtc");
export default {
    creatUserSig(sdkAppId, secretKey, userId) {
        return ExcbyteTrtc.creatUserSig(sdkAppId, secretKey, userId)
    },
    enableScreenOn() {//保持屏幕常亮
        ExcbyteTrtc.enableScreenOn()
    },
    disableScreenOn() {//关闭屏幕常亮
        ExcbyteTrtc.disableScreenOn()
    },
    sharedInstance() {
        return ExcbyteTrtc.sharedInstance()
    },
    destroySharedInstance() {
        ExcbyteTrtc.destroySharedInstance()
    },
    enterRoom(data, scene) {
        data.privateMapKey = data.privateMapKey || "";
        data.businessInfo = data.businessInfo || "";
        ExcbyteTrtc.enterRoom(data, scene)
    },
    exitRoom() {
        ExcbyteTrtc.exitRoom()
    },
    switchRole(role) {
        ExcbyteTrtc.switchRole(role)
    },
    connectOtherRoom(param) {
        ExcbyteTrtc.connectOtherRoom(param)
    },
    disconnectOtherRoom() {
        ExcbyteTrtc.disconnectOtherRoom()
    },
    setDefaultStreamRecvMode(autoRecvAudio, autoRecvVideo) {
        ExcbyteTrtc.setDefaultStreamRecvMode(autoRecvAudio, autoRecvVideo)
    },
    startPublishing(streamId, streamType) {
        ExcbyteTrtc.startPublishing(streamId, streamType)
    },
    stopPublishing() {
        ExcbyteTrtc.stopPublishing()
    },
    startPublishCDNStream(param) {
        ExcbyteTrtc.startPublishCDNStream(param)
    },
    stopPublishCDNStream() {
        ExcbyteTrtc.stopPublishCDNStream()
    },
    setMixTranscodingConfig(config) {
        ExcbyteTrtc.setMixTranscodingConfig(config)
    },
    startLocalPreview(frontCamera) {
        ExcbyteTrtc.startLocalPreview(frontCamera)
    },
    stopLocalPreview() {
        ExcbyteTrtc.stopLocalPreview()
    },
    muteLocalVideo(mute) {
        ExcbyteTrtc.muteLocalVideo(mute)
    },
    startRemoteView(userId) {
        ExcbyteTrtc.startRemoteView(userId)
    },
    stopRemoteView(userId) {
        ExcbyteTrtc.stopRemoteView(userId)
    },
    stopAllRemoteView() {
        ExcbyteTrtc.stopAllRemoteView()
    },
    muteRemoteVideoStream(userId, mute) {
        ExcbyteTrtc.muteRemoteVideoStream(userId, mute)
    },
    muteAllRemoteVideoStreams(mute) {
        ExcbyteTrtc.muteAllRemoteVideoStreams(mute)
    },
    setVideoEncoderParam(data) {
        ExcbyteTrtc.setVideoEncoderParam(data)
    },
    setNetworkQosParam(data) {
        ExcbyteTrtc.setNetworkQosParam(data)
    },
    setLocalViewFillMode(mode) {
        ExcbyteTrtc.setLocalViewFillMode(mode)
    },
    setRemoteViewFillMode(userId, mode) {
        ExcbyteTrtc.setRemoteViewFillMode(userId, mode)
    },
    setLocalViewRotation(rotation) {
        ExcbyteTrtc.setLocalViewRotation(rotation)
    },
    setRemoteViewRotation(userId, rotation) {
        ExcbyteTrtc.setRemoteViewRotation(userId, rotation)
    },
    setVideoEncoderRotation(rotation) {
        ExcbyteTrtc.setVideoEncoderRotation(rotation)
    },
    setLocalViewMirror(mirrorType) {
        ExcbyteTrtc.setLocalViewMirror(mirrorType)
    },
    setVideoEncoderMirror(mirror) {
        ExcbyteTrtc.setVideoEncoderMirror(mirror)
    },
    setGSensorMode(mode) {
        ExcbyteTrtc.setGSensorMode(mode)
    },
    enableEncSmallVideoStream(enable, smallVideoEncParam) {
        return ExcbyteTrtc.enableEncSmallVideoStream(enable, smallVideoEncParam)
    },
    setRemoteVideoStreamType(userId, streamType) {
        return ExcbyteTrtc.setRemoteVideoStreamType(userId, streamType)
    },
    setPriorRemoteVideoStreamType(streamType) {
        return ExcbyteTrtc.setPriorRemoteVideoStreamType(streamType)
    },
    snapshotVideo(userId, streamType) {
        return ExcbyteTrtc.snapshotVideo(userId, streamType)
    },
    startLocalAudio() {
        ExcbyteTrtc.startLocalAudio()
    },
    stopLocalAudio() {
        ExcbyteTrtc.stopLocalAudio()
    },
    muteLocalAudio(mute) {
        ExcbyteTrtc.muteLocalAudio(mute)
    },
    muteRemoteAudio(userId, mute) {
        ExcbyteTrtc.muteRemoteAudio(userId, mute)
    },
    muteAllRemoteAudio(mute) {
        ExcbyteTrtc.muteAllRemoteAudio(mute)
    },
    setRemoteAudioVolume(userId, volume) {
        ExcbyteTrtc.setRemoteAudioVolume(userId, volume)
    },
    setAudioCaptureVolume(volume) {
        ExcbyteTrtc.setAudioCaptureVolume(volume)
    },
    getAudioCaptureVolume() {
        return ExcbyteTrtc.getAudioCaptureVolume()
    },
    setAudioPlayoutVolume(volume) {
        ExcbyteTrtc.setAudioPlayoutVolume(volume)
    },
    getAudioPlayoutVolume() {
        return ExcbyteTrtc.getAudioPlayoutVolume()
    },
    enableAudioVolumeEvaluation(intervalMs) {
        ExcbyteTrtc.enableAudioVolumeEvaluation(intervalMs)
    },
    startAudioRecording(param) {
        return ExcbyteTrtc.startAudioRecording(param)
    },
    stopAudioRecording() {
        ExcbyteTrtc.stopAudioRecording()
    },
    setSystemVolumeType(type) {
        ExcbyteTrtc.setSystemVolumeType(type)
    },
    enableAudioEarMonitoring(enable) {
        ExcbyteTrtc.enableAudioEarMonitoring(enable)
    },
    switchCamera() {
        ExcbyteTrtc.switchCamera()
    },
    isCameraZoomSupported() {
        return ExcbyteTrtc.isCameraZoomSupported()
    },
    setZoom(distance) {
        ExcbyteTrtc.setZoom(distance)
    },
    isCameraTorchSupported() {
        return ExcbyteTrtc.isCameraTorchSupported()
    },
    enableTorch(enable) {
        return ExcbyteTrtc.enableTorch(enable)
    },
    isCameraFocusPositionInPreviewSupported() {
        return ExcbyteTrtc.isCameraFocusPositionInPreviewSupported()
    },
    setFocusPosition(x, y) {
        ExcbyteTrtc.setFocusPosition(x, y)
    },
    isCameraAutoFocusFaceModeSupported() {
        return ExcbyteTrtc.isCameraAutoFocusFaceModeSupported()
    },
    startScreenRecord() {
        ExcbyteTrtc.startScreenRecord()
    },
    stopScreenRecord() {
        ExcbyteTrtc.stopScreenRecord()
    },
    startPlayCall() {
        return  ExcbyteTrtc.startPlayCall()
    },
    stopPlayCall() {
        return  ExcbyteTrtc.stopPlayCall()
    },
    /*
     * setAudioRoute
     * int  0 Speaker 1 Earpiece
     */
    setAudioRoute(router) {
        ExcbyteTrtc.setAudioRoute(router)
    },
    addListener(eventName, handler) {
        if (!eventName || !handler) return;
        return plus.globalEvent.addEventListener(eventName, handler)
    },
    removeListener(eventName, handler) {
        if (!eventName) return;
        if (!handler) {
            plus.globalEvent.removeEventListener(eventName)
            return
        }
        plus.globalEvent.removeEventListener(eventName, handler)
    },
    TRTC_VIDEO_RESOLUTION_120_120: 1,
    TRTC_VIDEO_RESOLUTION_160_160: 3,
    TRTC_VIDEO_RESOLUTION_270_270: 5,
    TRTC_VIDEO_RESOLUTION_480_480: 7,
    TRTC_VIDEO_RESOLUTION_160_120: 50,
    TRTC_VIDEO_RESOLUTION_240_180: 52,
    TRTC_VIDEO_RESOLUTION_280_210: 54,
    TRTC_VIDEO_RESOLUTION_320_240: 56,
    TRTC_VIDEO_RESOLUTION_400_300: 58,
    TRTC_VIDEO_RESOLUTION_480_360: 60,
    TRTC_VIDEO_RESOLUTION_640_480: 62,
    TRTC_VIDEO_RESOLUTION_960_720: 64,
    TRTC_VIDEO_RESOLUTION_160_90: 100,
    TRTC_VIDEO_RESOLUTION_256_144: 102,
    TRTC_VIDEO_RESOLUTION_320_180: 104,
    TRTC_VIDEO_RESOLUTION_480_270: 106,
    TRTC_VIDEO_RESOLUTION_640_360: 108,
    TRTC_VIDEO_RESOLUTION_960_540: 110,
    TRTC_VIDEO_RESOLUTION_1280_720: 112,
    TRTC_VIDEO_RESOLUTION_MODE_LANDSCAPE: 0,
    TRTC_VIDEO_RESOLUTION_MODE_PORTRAIT: 1,
    TRTC_VIDEO_STREAM_TYPE_BIG: 0,
    TRTC_VIDEO_STREAM_TYPE_SMALL: 1,
    TRTC_VIDEO_STREAM_TYPE_SUB: 2,
    TRTC_QUALITY_UNKNOWN: 0,
    TRTC_QUALITY_Excellent: 1,
    TRTC_QUALITY_Good: 2,
    TRTC_QUALITY_Poor: 3,
    TRTC_QUALITY_Bad: 4,
    TRTC_QUALITY_Vbad: 5,
    TRTC_QUALITY_Down: 6,
    TRTC_VIDEO_RENDER_MODE_FILL: 0,
    TRTC_VIDEO_RENDER_MODE_FIT: 1,
    TRTC_VIDEO_ROTATION_0: 0,
    TRTC_VIDEO_ROTATION_90: 1,
    TRTC_VIDEO_ROTATION_180: 2,
    TRTC_VIDEO_ROTATION_270: 3,
    TRTC_BEAUTY_STYLE_SMOOTH: 0,
    TRTC_BEAUTY_STYLE_NATURE: 1,
    TRTC_VIDEO_PIXEL_FORMAT_UNKNOWN: 0,
    TRTC_VIDEO_PIXEL_FORMAT_I420: 1,
    TRTC_VIDEO_PIXEL_FORMAT_Texture_2D: 2,
    TRTC_VIDEO_PIXEL_FORMAT_TEXTURE_EXTERNAL_OES: 3,
    TRTC_VIDEO_PIXEL_FORMAT_NV21: 4,
    TRTC_VIDEO_MIRROR_TYPE_AUTO: 0,
    TRTC_VIDEO_MIRROR_TYPE_ENABLE: 1,
    TRTC_VIDEO_MIRROR_TYPE_DISABLE: 2,
    TRTC_VIDEO_BUFFER_TYPE_UNKNOWN: 0,
    TRTC_VIDEO_BUFFER_TYPE_BYTE_BUFFER: 1,
    TRTC_VIDEO_BUFFER_TYPE_BYTE_ARRAY: 2,
    TRTC_VIDEO_BUFFER_TYPE_TEXTURE: 3,
    TRTC_APP_SCENE_VIDEOCALL: 0,
    TRTC_APP_SCENE_LIVE: 1,
    TRTC_APP_SCENE_AUDIOCALL: 2,
    TRTC_APP_SCENE_VOICE_CHATROOM: 3,
    TRTCRoleAnchor: 20,
    TRTCRoleAudience: 21,
    VIDEO_QOS_CONTROL_CLIENT: 0,
    VIDEO_QOS_CONTROL_SERVER: 1,
    TRTC_VIDEO_QOS_PREFERENCE_SMOOTH: 1,
    TRTC_VIDEO_QOS_PREFERENCE_CLEAR: 2,
    TRTCAudioSampleRate16000: 16000,
    TRTCAudioSampleRate32000: 32000,
    TRTCAudioSampleRate44100: 44100,
    TRTCAudioSampleRate48000: 48000,
    TRTC_AUDIO_ROUTE_SPEAKER: 0,
    TRTC_AUDIO_ROUTE_EARPIECE: 1,
    TRTC_REVERB_TYPE_0: 0,
    TRTC_REVERB_TYPE_1: 1,
    TRTC_REVERB_TYPE_2: 2,
    TRTC_REVERB_TYPE_3: 3,
    TRTC_REVERB_TYPE_4: 4,
    TRTC_REVERB_TYPE_5: 5,
    TRTC_REVERB_TYPE_6: 6,
    TRTC_REVERB_TYPE_7: 7,
    TRTC_VOICE_CHANGER_TYPE_0: 0,
    TRTC_VOICE_CHANGER_TYPE_1: 1,
    TRTC_VOICE_CHANGER_TYPE_2: 2,
    TRTC_VOICE_CHANGER_TYPE_3: 3,
    TRTC_VOICE_CHANGER_TYPE_4: 4,
    TRTC_VOICE_CHANGER_TYPE_5: 5,
    TRTC_VOICE_CHANGER_TYPE_6: 6,
    TRTC_VOICE_CHANGER_TYPE_7: 7,
    TRTC_VOICE_CHANGER_TYPE_8: 8,
    TRTC_VOICE_CHANGER_TYPE_9: 9,
    TRTC_VOICE_CHANGER_TYPE_10: 10,
    TRTC_VOICE_CHANGER_TYPE_11: 11,
    TRTC_AUDIO_FRAME_FORMAT_PCM: 1,
    TRTCSystemVolumeTypeAuto: 0,
    TRTCSystemVolumeTypeMedia: 1,
    TRTCSystemVolumeTypeVOIP: 2,
    TRTC_DEBUG_VIEW_LEVEL_GONE: 0,
    TRTC_DEBUG_VIEW_LEVEL_STATUS: 1,
    TRTC_DEBUG_VIEW_LEVEL_ALL: 2,
    TRTC_LOG_LEVEL_VERBOSE: 0,
    TRTC_LOG_LEVEL_DEBUG: 1,
    TRTC_LOG_LEVEL_INFO: 2,
    TRTC_LOG_LEVEL_WARN: 3,
    TRTC_LOG_LEVEL_ERROR: 4,
    TRTC_LOG_LEVEL_FATAL: 5,
    TRTC_LOG_LEVEL_NULL: 6,
    TRTC_GSENSOR_MODE_DISABLE: 0,
    TRTC_GSENSOR_MODE_UIAUTOLAYOUT: 1,
    TRTC_GSENSOR_MODE_UIFIXLAYOUT: 2,
    TRTC_TranscodingConfigMode_Unknown: 0,
    TRTC_TranscodingConfigMode_Manual: 1,
};
                                        
                                                                    
                                                                        收藏人数:
                                    
                                                        购买(
                                                                                                                试用
                                                    
                                            使用 HBuilderX 导入示例项目
                                        
                                        赞赏(0)
                                    
                                            
                                            
 下载 14
                
 赞赏 0
                
            
                    下载 12289 
                
            
            
            
            
            
            
            
            
            
            
                        赞赏 7 
                    
            
            
            
            
                        
                                赞赏
                            
            
京公网安备:11010802035340号