UniApp提供了录音功能的API,可以通过该API实现录音功能。
首先,在uni-app项目中创建一个录音页面。在该页面中,引入uni录音API:
import uniRecorder from '@/uni_modules/uni-recorder/uni-recorder.js';
然后,在页面中添加开始录音和停止录音的按钮,并绑定相应的事件处理函数:
<template> <view> <button @tap="startRecord">开始录音</button> <button @tap="stopRecord">停止录音</button> </view> </template> <script> import uniRecorder from '@/uni_modules/uni-recorder/uni-recorder.js'; export default { methods: { startRecord() { uniRecorder.start({ format: 'mp3', duration: 120000, sampleRate: 44100, numberOfChannels: 1, encodeBitRate: 64000, frameSize: 2048, audioSource: 'auto' }).then((res) => { console.log(res.tempFilePath); }).catch((err) => { console.log(err); }); }, stopRecord() { uniRecorder.stop().then((res) => { console.log(res.tempFilePath); }).catch((err) => { console.log(err); }); } } } </script>
在开始录音的事件处理函数中,调用uniRecorder的start方法开始录音,并传入录音的参数。其中,format表示录音格式,duration表示录音时长,sampleRate表示采样率,numberOfChannels表示声道数,encodeBitRate表示编码比特率,frameSize表示帧大小,audioSource表示音频获取源,可以选择auto、camcorder或voice_communication。在start方法返回的Promise对象中,可以获取到录音生成的临时文件路径。
在停止录音的事件处理函数中,调用uniRecorder的stop方法停止录音,并在stop方法返回的Promise对象中获取录音生成的临时文件路径。
需要注意的是,在使用uniRecorder的API之前,需要先在manifest.json文件中配置录音相关的权限:
"permissions": { "audioRecord": { "desc": "用于录音功能" }, }