uniapp录制语音

news/2025/2/21 7:22:36/

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

1.开始录音 (startRecording 函数)

  • 当用户点击 开始录音 按钮时,调用 startRecording 函数开始录音。
  • 录音通过 uni.getRecorderManager() 来实现。recorderManager 是录音管理器,提供了启动、停止、暂停等控制录音的功能、
const startRecording = () => {const options = {duration: 60000,  // 限制录音时长,最大为60秒  format: 'mp3',  // 录音格式  };recorderManager.start(options);  // 调用 start 方法开始录音
};

2. 停止录音 (stopRecording 函数)

  • 当用户点击 停止录音 按钮时,调用 stopRecording 函数来停止录音。
2. 停止录音 (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() 播放录音。
  • 清理资源:在组件销毁时,销毁音频上下文,释放资源。

http://www.ppmy.cn/news/1573822.html

相关文章

实验流量统计设计

当我们需要统计实验中每个分支的实际进入次数时,如何设计一个高效、可靠且对业务影响最小的方案,成为了关键。以下是几种常见的流量统计方案的分析与实现设计 目标 不影响实际业务使用,不应该因为汇报错误,导致灰度、甚至实际业…

Qt中使用QPdfWriter类结合QPainter类绘制并输出PDF文件

一.类的介绍 1.QPdfWriter介绍 Qt中提供了一个直接可以处理PDF的类,这就是QPdfWriter类。 (1)PDF文件生成 支持创建新的PDF文件或覆盖已有文件,通过构造函数直接绑定文件路径或QFile对象; 默认生成矢量图形PDF&#…

【DeepSeek 系列】DeepSeekMoE

文章目录 Transformers 中的 MoETransformer语言模型通用的MoE架构 DeepSeekMoE架构细粒度专家分割共享专家隔离负载均衡考虑 模型预训练不同尺寸模型超参数概览DeepSeekMoE 2B训练数据基础设施超参数 DeepSeekMoE 16B训练数据超参数 DeepSeekMoE 16B 的对齐训练数据超参数 总结…

Unity教程(二十一)技能系统 基础部分

Unity开发2D类银河恶魔城游戏学习笔记 Unity教程(零)Unity和VS的使用相关内容 Unity教程(一)开始学习状态机 Unity教程(二)角色移动的实现 Unity教程(三)角色跳跃的实现 Unity教程&…

【Linux】序列化、守护进程、应用层协议HTTP、Cookie和Session

⭐️个人主页:小羊 ⭐️所属专栏:Linux 很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎 ~ 目录 1、序列化和反序列化2、守护进程2.1 什么是进程组?2.2 什么是会话? 3、应用层协议HTTP3.1 HTTP协议3.2 HT…

Mentalab Explore Pro:第三代移动 EEG 设备,开启便携式脑电研究新时代

Mentalab推出的Explore Pro是一款专为研究和工业领域设计的第三代移动脑电图(EEG)设备。它凭借很高的精度和小巧的尺寸,为脑电研究提供了新的可能性。这款设备凭借强大的功能和灵活的设计,成为研究人员在各种实验环境中重要的工具…

人工智能之视频分割模型sam2源码解读

目前只提供了测试的,没训练的代码这一块。 (1)下载源码后按下面几步操作: 也许vs版本低一点也行吧,至此视频已经切成图片了。 (2)预测 它是先把视频分割成图像,然后第一帧先指定要分割的那些东西,然后它就是每帧去处理,最后输出分割后的图像…

新手小白如何挖掘cnvd通用漏洞之存储xss漏洞(利用xss钓鱼)

视频教程和更多福利在我主页简介或专栏里 (不懂都可以来问我 专栏找我哦) 如果对你有帮助你可以来专栏找我,我可以无偿分享给你对你更有帮助的一些经验和资料哦 目录: 一、XSS的三种类型: 二、XSS攻击的危害&#x…