更新记录

1.0.0(2024-10-09) 下载此版本

优化


平台兼容性

Vue2 Vue3
×
App 快应用 微信小程序 支付宝小程序 百度小程序 字节小程序 QQ小程序
app-vue × × × × × ×
钉钉小程序 快手小程序 飞书小程序 京东小程序
× × × ×
H5-Safari Android Browser 微信浏览器(Android) QQ浏览器(Android) Chrome IE Edge Firefox PC-Safari
× × × × × × × × ×
<script>
// @ts-ignore
const recorderManager = uni.getRecorderManager();
import tool from './tool.js';
const { authForApp } = require('./appPermission.js');

// @ts-ignore
export default {
  data() {
    return {
      // 填入secretKey和secretId就可以直接使用了
      secretKey: 'V2X3d8ulhirvtkVFtPygTJa0Nl6bCHVe',
      secretId: 'AKIDDYp3Nf0FR4vpeNzW9gK1oYSMCHONMKNB',
      appId: '',
      voicePath: '',
      // 一句话录音结果
      result: '',
      // 更多参数参考腾讯文档,全部兼容
      defaultData: {
        EngSerViceType: '16k_zh',
        SourceType: 1,
        VoiceFormat: 'mp3',
        Data: '',
        DataLen: null
      },
      base64Header: {
        mp3: 'data:audio/mpeg;base64,',
        wav: 'data:audio/x-wav;base64,',
        pcm: 'data:application/PCM;base64,'
      }
    };
  },
  onLoad() {
    this.dealStop();
  },
  mounted() {
    authForApp('麦克风权限');
  },
  methods: {
    startRecord() {
      console.log('开始录音');
      // 录音类型要跟defaultData.VoiceFormat保存一致,pcm的情况下录音的入参要传大写PCM
      recorderManager.start();
    },
    endRecord() {
      console.log('录音结束');
      recorderManager.stop();
    },
    async dealStop() {
      recorderManager.onStop(async path => {
        console.log('%c监听录音结束 Line:47 🍖 res', 'color:#465975', path);
        // 获取临时路径
        this.voicePath = path.tempFilePath;
        console.log('%c Line:59 🍰 this.voicePath', 'color:#4fff4B', this.voicePath);
        // 临时路径转base64
        let base64 = await tool.pathToBase64(this.voicePath);
        base64 = base64.replace(this.base64Header[this.defaultData.VoiceFormat], '');
        console.log('%c Line:55 🌮 base64', 'color:#f5ce50', base64);
        // base64录音内容
        this.defaultData.Data = base64;
        // 录音长度
        this.defaultData.DataLen = uni.base64ToArrayBuffer(base64).byteLength;
        console.log('%c Line:60 🍺 this.defaultData.DataLen', 'color:#2eafb0', this.defaultData.DataLen);
        const { secretId, secretKey, defaultData } = this;
        // 只需要传入secretId + secretKey +
        // payload =》腾讯云一句话识别官方文档的入参
        // 直接返回识别结果
        const res = await tool.sendVoice({
          secretId,
          secretKey,
          payload: defaultData
        });
        this.result = res.Response.Result;
        console.log('%c Line:58 🍕 res', 'color:#3f7cff', res);
      });
    }
  }
};
</script>

隐私、权限声明

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

录音权限

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

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

许可协议

MIT协议

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