更新记录

1.0.8(2024-02-07)

增加是否兼容h5设置

1.0.7(2023-10-08)

增加结束通话函数

1.0.6(2023-04-21)

视频逻辑优化,解决有时无法回调结果到Uniapp的bug

查看更多

平台兼容性

Android Android CPU类型 iOS
适用版本区间:5.0 - 12.0 armeabi-v7a:支持,arm64-v8a:支持,x86:未测试 ×

原生插件通用使用流程:

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


阿里云音视频安卓原生插件 封装。 https://help.aliyun.com/document_detail/74889.html

  • 支持Android平台使用

  • 插件提供的函数

    序号 函数名 说明
    1 startVideoCall(String json) 发起 或 加入视频通话
    2 startVoiceCall(String json) 发起 或 加入语音通话
    3 addRliRtcCallback(callback) 结果回调函数
    4 hangUp() 挂断函数,即结束通话
  • 函数说明

  • (1) startVideoCall(String json) 该函数为调用视频通话(发起/加入视频通话) :

    参数json:参数为json格式字符串,示例如下:
    {
        appId: "",//你的阿里云app id
        appKey: "",//你的阿里云app key
        channelId: "",//
        userId: “”,//
        nonce: "",//
        token: "",
        timestamp: "",
        userName:"",//用户名
        avatar:"",//用户头像地址
        H5CompatibleMode:true //设置是否兼容H5,取值:true/false
    }

参数中除userName、avatar之外,其余参数参照如下规则: 参数说明图

该函数使用示例:

    let timestamp = new Date().getTime()
    var module = uni.requireNativePlugin("jushi-ali-rtc")
    module.startVoiceCall(JSON.stringify({
    appId: "",
    appKey: "",
    channelId: "jushi_123",
    userId: this.userId,
    nonce: "AK-2b9be4b25c2kkk",
    token: this.getToken(timestamp),
    timestamp: timestamp,
    userName:'用户名',     
    avatar:'https://img-blog.csdnimg.cn',
    H5CompatibleMode:true //设置是否兼容H5,取值:true/false
    }))
  • (2) startVoiceCall(String json) 该函数为调用语音通话(发起/加入语音通话)**

参数json:参数为json格式字符串,参数格式与(1) startVideoCall(String json)一致。

该函数使用示例也与(1) startVideoCall(String json)一致。

  • (3) addRliRtcCallback(callback)结果回调函数,插件返回的结果都从该函数返回

     使用示例:
         var module = uni.requireNativePlugin("jushi-ali-rtc")
         module.addRliRtcCallback(res=>{
            console.log(res)
         })
    
     返回结果示例:
        {"ali_rtc_message":"","code":-5,"message":"通话结束"}
  • 回调函数code值说明

    序号 code值 说明
    1 1 加入频道
    2 0 对方上线
    3 -1 对方离线
    4 -2 对方关闭相机流采集
    5 -3 离开频道
    6 -4 发生错误
    7 -5 自己主动挂断
  • 插件使用简易流程

    插件使用简易流程

  • 使用示例

    <template>
    <view class="">
        <button @click="videoCall()">视频通话</button>
        <button @click="voiceCall()">语音通话</button>
        <input type="text" value="" placeholder-class="p-class" placeholder="输入user id" v-model="userId"/>
    </view>
    </template>
    
    <script>
    export default {
        data() {
            return {
                userId:''
            }
        },
        methods: {
            videoCall() {
                if(this.userId.length==0){
                    this.toast('请先输入user id')
                    return
                }
                let timestamp = new Date().getTime()
                var module = uni.requireNativePlugin("jushi-ali-rtc")
                module.addRliRtcCallback(res=>{
                            console.log(res)
                })
                module.startVideoCall(JSON.stringify({
                    appId: "你在阿里云音视频申请的appId",
                    appKey: "你在阿里云音视频申请的appkey",
                    channelId: "jushi_123",//频道ID(用户自定义),发起方用于发起视频通话,即接收方和发起方的值一样
                    userId: this.userId,//用户ID,接收方和发起方是不同的值
                    nonce: "",//随机码,以AK-开头,由大小写字母、数字组成,最大64字节,示例:AK-2b9be4b25c2d38c409c376ffd2372be1
                    token: this.getToken(timestamp),//appId + appKey + channelId + userId + nonce + timestamp
                    timestamp: timestamp,
                    userName:'栗山居士',
                    avatar:'https://img-blog.csdnimg.cn/a54887b43f6c40df81d9221d44eb4320.png#pic_center',
                    H5CompatibleMode:true //设置是否兼容H5,取值:true/false
                }))
            },
            voiceCall() {
                if(this.userId.length==0){
                    this.toast('请先输入user id')
                    return
                }
                let timestamp = new Date().getTime()
                var module = uni.requireNativePlugin("jushi-ali-rtc")
                module.addRliRtcCallback(res=>{
                            console.log(res)
                })
                module.startVoiceCall(JSON.stringify({
                    appId: "你在阿里云音视频申请的appId",
                    appKey: "你在阿里云音视频申请的appkey",
                    channelId: "jushi_123",//频道ID(用户自定义),发起方用于发起音频通话,即接收方和发起方的值一样
                    userId: this.userId,//用户ID,接收方和发起方是不同的值
                    nonce: "",//随机码,以AK-开头,由大小写字母、数字组成,最大64字节,示例:AK-2b9be4b25c2d38c409c376ffd2372be1
                    token: this.getToken(timestamp),//appId + appKey + channelId + userId + nonce + timestamp
                    timestamp: timestamp,
                    userName:'栗山居士',
                    avatar:'https://img-blog.csdnimg.cn/a54887b43f6c40df81d9221d44eb4320.png#pic_center',
                    H5CompatibleMode:true //设置是否兼容H5,取值:true/false
                }))
            }
        }
    }
    </script>
    
    <style>
    
    .text-area {
        display: flex;
        justify-content: center;
    }
    
    button {
        margin: 20rpx;
    }
    input{
        font-size: 32rpx;
        color: #FFFFFF;
    }
    .p-class{
        font-size: 32rpx;
        color: #FFFFFF;
    }
    </style>
  • 示例应用下载

    扫码下载体验

    其它插件

    安卓原生插件

  • 文件在线预览

  • 银联支付线上收银台(通用版) 封装

  • 阿里云RTC音视频通话

  • 权限请求

  • 文字转语音

  • MQTT连接

  • 获取手机通讯录联系人

  • 快捷工具悬浮窗

  • 日历日程事件

  • 获取本地音频文件信息

  • 根据经纬度获取位置信息

  • WebSocket连接

  • 高德地图封装安卓原生地图扩展组件

  • 使用ECharts封装的安卓原生扩展组件

  • 给图片添加水印

  • 自定义通知栏通知

    UTS插件

  • 安卓权限请求UTS插件

  • 安卓文字转语音UTS插件

  • 安卓获取音频文件UTS插件

    前端插件

  • ECharts封装全端通用组件

  • 图片添加水印,支持微信小程序、H5

  • 手写签名、电子签名组件

隐私、权限声明

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

<!-- 阿里云RTC --> <uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.RECORD_AUDIO" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />

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

无 具体详细说明请查看阿里云音视频官方文档,阿里云官方网址:https://help.aliyun.com/document_detail/69543.html

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

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