uniapp录制语音

ops/2025/2/21 4:50:10/

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

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/ops/160148.html

相关文章

人工智能(AI)的不同维度分类

人工智能(AI)的分类 对机器学习进行分类的方式多种多样,可以根据算法的特性、学习方式、任务类型等不同维度进行分类这些分类都不是互斥的: 1、按数据模态不同:图像,文本,语音,多态等 2、按目标函数不同:判别式模型…

AIGC视频生成明星——Emu Video模型

大家好,这里是好评笔记,公主号:Goodnote,专栏文章私信限时Free。本文详细介绍Meta的视频生成模型Emu Video,作为Meta发布的第二款视频生成模型,在视频生成领域发挥关键作用。 🌺优质专栏回顾&am…

DeepSeek-R1本地部署详细指南!(Ollama+Chatbox AI+Open WebUI)

一、前言 DeepSeek(深度求索)是一家中国人工智能企业,其在人工智能领域取得了显著成果,特别是其发布的新一代大模型DeepSeek-R1和DeepSeek-V3,受到了广泛关注。 DeepSeek官网:https://www.deepseek.com/ …

LLaMA-Factory DeepSeek-R1 模型 微调基础教程

LLaMA-Factory 模型 微调基础教程 LLaMA-FactoryLLaMA-Factory 下载 AnacondaAnaconda 环境创建软硬件依赖 详情LLaMA-Factory 依赖安装CUDA 安装量化 BitsAndBytes 安装可视化微调启动 数据集准备所需工具下载使用教程所需数据合并数据集预处理 DeepSeek-R1 可视化微调数据集处…

九联UNT403AS_晶晨S905L3S芯片_2+8G_安卓9.0_卡刷固件包

九联UNT403AS_晶晨S905L3S芯片_28G_安卓9.0_卡刷固件包 刷机教程: 下载好引导文件和固件,8G以下U盘格式化,将文件放入U盘根目录,用牙签抵着复位孔同时开机,5秒后松开即可进去刷机模式 刷机固件: 链接: h…

深度学习02 神经网络实现手写数字案例

目录 下载手写数字图像(图像标签) 展示手写数字图片 数据打包 判断当前设备是否支持GPU 建立神经网络模型 设置训练集与测试集 创建损失函数、优化器 开始训练 下载手写数字图像(图像标签) training_datadatasets.MNIST(rootdata,trainTrue,downloadTrue,transformToTe…

瑞萨RA-T系列芯片ADCGPT功能模块的配合使用

在马达或电源工程中,往往需要采集多路AD信号,且这些信号的优先级和采样时机不相同。本篇介绍在使用RA-T系列芯片建立马达或电源工程时,如何根据需求来设置主要功能模块ADC&GPT,包括采样通道打包和分组,GPT触发启动…

审计级别未启用扩展模式导致查询 DBA_AUDIT_TRAIL 时 SQL_TEXT 列为空

如果查询 DBA_AUDIT_TRAIL 时发现 SQL_TEXT 列为空,但其他字段(如 OS_USERNAME、USERNAME、TIMESTAMP 等)有数据,可能是由于以下原因之一。以下是可能的原因及解决方法: 1. 审计级别未启用扩展模式 默认情况下&#x…