更新记录

1.0.6(2026-04-02) 下载此版本

Android、iOS 本地依赖库改为线上依赖

1.0.5(2025-10-20) 下载此版本

首次发布,详细请查看 ZEGO 官网


平台兼容性

uni-app(4.36)

Vue2 Vue2插件版本 Vue3 Vue3插件版本 Chrome Safari app-vue app-vue插件版本 app-nvue app-nvue插件版本 Android Android插件版本 iOS iOS插件版本 鸿蒙
1.0.5 1.0.5 × × 1.0.5 1.0.5 5.0 1.0.5 12 1.0.5 ×
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 小红书小程序 快应用-华为 快应用-联盟
× × × × × × × × × × × ×

uni-app x(4.36)

Chrome Safari Android Android插件版本 iOS iOS插件版本 鸿蒙 微信小程序
× × 5.0 1.0.5 12 1.0.5 × ×

zego-zim-audio-uts

开发文档

Native App 开发

  • 制作自定义基座

使用 SDK

// <script>
import { IZIMAudio, ZIMAudio, ZIMAudioRecordConfig, ZIMAudioPlayConfig, ZIMAudioANSParam } from '@/uni_modules/zego-zim-audio-uts';

export default {
    onShow() {
        this.useZIMAudio();
    },
    methods: {
        async useZIMAudio() {
            // 录音文件存放的绝对路径
            let filePath = '';

            // 创建实例        
            const zimAudio = ZIMAudio.getInstance();

            zimAudio.onError((res) => console.log('onError: ' + JSON.stringify(res)));
            zimAudio.onRecorderStarted(() => {
                console.log('onRecorderStarted');
                setTimeout(() => {
                    zimAudio.isRecording().then((res) => console.log('isRecording: ' + res));
                    zimAudio.completeRecord().then(async () => {
                        // 录制完成后,可播放录音文件
                        await zimAudio.setAudioRouteType(0);
                        await zimAudio.startPlay({ filePath, routeType: 0 } as ZIMAudioPlayConfig);
                        // zimAudio.uninit();
                    });
                    // zimAudio.cancelRecord();
                }, 10 * 1000);
            });
            zimAudio.onRecorderCancelled(() => console.log('onRecorderCancelled'));
            zimAudio.onRecorderCompleted((res) => console.log('onRecorderCompleted: ' + res));
            zimAudio.onRecorderProgress((res) => console.log('onRecorderProgress: ' + res));
            zimAudio.onRecorderFailed((res) => console.log('onRecorderFailed: ' + res));
            zimAudio.onPlayerStarted((res) => {
                console.log('onPlayerStarted: ' + res);
                setTimeout(() => {
                    zimAudio.isPlaying().then((res) => console.log('isPlaying: ' + res));
                    zimAudio.stopPlay();
                }, 5 * 1000);
            });
            zimAudio.onPlayerInterrupted(() => console.log('onPlayerInterrupted'));
            zimAudio.onPlayerStopped(() => console.log('onPlayerStopped'));
            zimAudio.onPlayerEnded(() => console.log('onPlayerEnded'));
            zimAudio.onPlayerProgress((res) => console.log('onPlayerProgress: ' + res));
            zimAudio.onPlayerFailed((res) => console.log('onPlayerFailed: ' + res));

            // 参考 ZEGO 文档,https://doc-zh.zego.im/zim-server/zim-audio/obtain-a-license 接口用以上配置生成的鉴权
            const license = '';

            // ZIMAudio.setAdvancedConfig('audio_session_do_nothing', 'true');
            await zimAudio.initWithLicense(license);
            // ZIMAudio.setAdvancedConfig('audio_session_mix_with_others', 'true');

            await zimAudio.enableAGC(true);
            await zimAudio.enableANS(true);
            await zimAudio.setANSParam({ mode: 1 } as ZIMAudioANSParam);

            // #ifdef APP-ANDROID
            const apkName = ''; // apk 包名
            filePath = '/storage/emulated/0/Android/data/' + apkName + '/test.mp3';

            // Android 平台:请求录制权限
            const permissionCheck = ["android.permission.RECORD_AUDIO"]
            if (!UTSAndroid.checkSystemPermissionGranted(UTSAndroid.getUniActivity()!, permissionCheck)) {
                UTSAndroid.requestSystemPermission(
                    UTSAndroid.getUniActivity()!,
                    permissionCheck,
                    function (allRight : boolean, _ : string[]) {
                        if (allRight) {
                            zimAudio.startRecord({ filePath, maxDuration: 1 * 60 * 1000 } as ZIMAudioRecordConfig)
                        }
                    },
                    function (all : boolean, _ : string[]) {
                        //用户拒绝了部分权限
                    });
            } else {
                zimAudio.startRecord({ filePath, maxDuration: 1 * 60 * 1000 } as ZIMAudioRecordConfig);
            }
            // #endif

            // 通过以下 swift 代码获取文件目录
            // import Foundation;
            // func getSandboxDirectory() -> String {
            //     // temporaryDirectory cachesDirectory documentDirectory
            //     return FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0].path
            // }
            // filePath = getSandboxDirectory();

            // #ifdef APP-IOS
            filePath = filePath + '/test.mp3';
            zimAudio.startRecord({ filePath, maxDuration: 1 * 60 * 1000 } as ZIMAudioRecordConfig);
            // #endif
        }
    }
}
// </script>

参考文档

隐私、权限声明

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

录音

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

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

许可协议

MIT协议

暂无用户评论。