uniapp录制语音

给大家讲解瞎 录制语音 的功能,这部分主要涉及到以下几个步骤:开始录音、停止录音、播放录音的功能

1.开始录音 (startRecording 函数)

  • 当用户点击 开始录音 按钮时,调用 startRecording 函数开始录音。

  • 录音通过 uni.getRecorderManager() 来实现。recorderManager 是录音管理器,提供了启动、停止、暂停等控制录音的功能、

    const startRecording = () => {
    const options = {
    duration: 60000, // 限制录音时长,最大为60秒
    format: 'mp3', // 录音格式
    };
    recorderManager.start(options); // 调用 start 方法开始录音
    };

2. 停止录音 (stopRecording 函数)

  • 当用户点击 停止录音 按钮时,调用 stopRecording 函数来停止录音。

    1. 停止录音 (stopRecording 函数)
      当用户点击 停止录音 按钮时,调用 stopRecording 函数来停止录音。

3. 录音过程的管理

  • 在录音过程中,你需要显示录音时长,实时更新时长信息。为了实现这一功能,你可以设置一个定时器,在录音过程中定时更新时间

    recorderManager.onStart(() => {
    console.log('录音开始');
    isRecording.value = true; // 标记录音状态为进行中
    recordingStartTime = Date.now(); // 记录开始时间
    recordingInterval = setInterval(() => {
    recordingDuration.value = Math.floor((Date.now() - recordingStartTime) / 1000); // 每秒更新一次录音时长
    }, 1000);
    });

4. 录音停止后的处理

  • 当录音停止后,你可以通过 recorderManager.onStop 获取录音的文件路径。

    recorderManager.onStop((res) => {
    console.log('录音停止', res);
    isRecording.value = false; // 标记录音结束
    audioSrc.value = res.tempFilePath; // 获取录音文件的路径
    clearInterval(recordingInterval); // 停止定时器
    recordingDuration.value = Math.floor((Date.now() - recordingStartTime) / 1000); // 更新最终录音时长
    });

5. 播放录音 (playAudio 函数)

  • 用户录音完成后,可以通过 playAudio 函数播放录音。
复制代码
  const playAudio = () => {
      if (audioSrc.value) {  // 确保有录音文件
          innerAudioContext.src = audioSrc.value;  // 设置录音文件的路径
          innerAudioContext.play();  // 播放录音

          innerAudioContext.onPlay(() => {
              console.log('开始播放');
          });

          innerAudioContext.onError((err) => {
              console.error('播放错误', err);
          });
      }
  };

总结

录音功能的实现主要包括以下几个方面:

  • 开始录音 :通过 recorderManager.start() 开始录音。
  • 停止录音 :通过 recorderManager.stop() 停止录音,并获取录音文件路径。
  • 管理录音时长:使用定时器实时更新录音时长。
  • 播放录音 :通过 innerAudioContext.play() 播放录音。
  • 清理资源:在组件销毁时,销毁音频上下文,释放资源。
相关推荐
2501_916008899 小时前
深入解析iOS机审4.3原理与混淆实战方法
android·java·开发语言·ios·小程序·uni-app·iphone
QT.qtqtqtqtqt10 小时前
uni-app小程序前端开发笔记(更新中)
前端·笔记·小程序·uni-app
喵喵虫20 小时前
uniapp修改封装组件失败 styleIsolation
uni-app
游戏开发爱好者81 天前
日常开发与测试的 App 测试方法、查看设备状态、实时日志、应用数据
android·ios·小程序·https·uni-app·iphone·webview
2501_915106321 天前
app 上架过程,安装包准备、证书与描述文件管理、安装测试、上传
android·ios·小程序·https·uni-app·iphone·webview
2501_915106321 天前
使用 Sniffmaster TCP 抓包和 Wireshark 网络分析
网络协议·tcp/ip·ios·小程序·uni-app·wireshark·iphone
宠友信息1 天前
2025社交+IM及时通讯社区APP仿小红书小程序
java·spring boot·小程序·uni-app·web app
“负拾捌”1 天前
python + uniapp 结合腾讯云实现实时语音识别功能(WebSocket)
python·websocket·微信小程序·uni-app·大模型·腾讯云·语音识别
局外人LZ2 天前
Uniapp脚手架项目搭建,uniapp+vue3+uView pro+vite+pinia+sass
前端·uni-app·sass
2501_915918412 天前
在 iOS 环境下查看 App 详细信息与文件目录
android·ios·小程序·https·uni-app·iphone·webview