news 2025/12/25 11:16:36

前端Vue使用js-audio-plugin实现录音功能

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
前端Vue使用js-audio-plugin实现录音功能

在前端 Vue 项目中使用 js-audio-recorder 组件,可按以下流程进行操作:

  1. 安装组件:在项目根目录下执行npm i js-audio-recorder命令,安装该组件。
  2. 引入组件:在需要使用录音功能的 Vue 组件中,通过import Recorder from 'js - audio - recorder'引入 Recorder。
  3. 初始化与使用:在组件的created钩子函数或setup函数中初始化 Recorder 实例,并定义相关方法来控制录音操作。

具体使用方法如下:

  • 创建实例:可在created中创建 Recorder 实例,如this.recorder = new Recorder()。也可传入参数自定义采样位数、采样率等,如this.recorder = new Recorder({sampleBits: 16, sampleRate: 16000, numChannels: 1})
  • 开始录音:先通过Recorder.getPermission()获取麦克风权限,成功后调用start方法,如Recorder.getPermission().then(() => {this.recorder.start()})
  • 控制录音:暂停录音调用pause方法,即this.recorder.pause();继续录音调用resume方法,即this.recorder.resume();停止录音调用stop方法,即this.recorder.stop()
  • 播放录音:调用play方法播放录制的音频,如this.recorder.play()
  • 销毁实例:录音结束后,可调用destroy方法销毁实例,释放资源,如this.recorder.destroy()
  • 获取音频数据:可通过getWAVBlob方法获取录制音频的 WAV 格式 Blob 数据,如const blob = this.recorder.getWAVBlob(),用于上传或其他操作。\

示例:

<template> <div> <h1>音频录制示例</h1> <button @click="startRecording" :disabled="isRecording">开始录音</button> <button @click="pauseRecording" :disabled="!isRecording || isPaused">暂停录音</button> <button @click="resumeRecording" :disabled="!isRecording ||!isPaused">继续录音</button> <button @click="stopRecording" :disabled="!isRecording">停止录音</button> <button @click="playRecording" :disabled="!recordingBlob">播放录音</button> <button @click="downloadRecording" :disabled="!recordingBlob">下载录音</button> </div> </template> <script setup> import Recorder from 'js - audio - recorder'; import { ref } from 'vue'; // 录音状态 const isRecording = ref(false); // 暂停状态 const isPaused = ref(false); // 存储录制的音频Blob const recordingBlob = ref(null); let recorder; const startRecording = async () => { try { await Recorder.getPermission(); recorder = new Recorder(); recorder.start(); isRecording.value = true; isPaused.value = false; } catch (error) { console.error('获取权限或开始录音失败', error); } }; const pauseRecording = () => { if (recorder) { recorder.pause(); isPaused.value = true; } }; const resumeRecording = () => { if (recorder) { recorder.resume(); isPaused.value = false; } }; const stopRecording = () => { if (recorder) { recorder.stop(); isRecording.value = false; isPaused.value = false; recordingBlob.value = recorder.getWAVBlob(); recorder.destroy(); } }; const playRecording = () => { if (recordingBlob.value) { const audioUrl = URL.createObjectURL(recordingBlob.value); const audio = new Audio(audioUrl); audio.play(); } }; const downloadRecording = () => { if (recordingBlob.value) { const link = document.createElement('a'); link.href = URL.createObjectURL(recordingBlob.value); link.download ='recording.wav'; link.click(); } }; </script> <style scoped> button { margin: 10px; } </style>
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2025/12/24 4:57:27

UI自动化测试:Jenkins配置

&#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快团队下半年的目标之一是实现自动化测试&#xff0c;这里要吐槽一下&#xff0c;之前开发的测试平台了&#xff0c;最初的目的是用来做接口自动化测试和性能测试&…

作者头像 李华
网站建设 2025/12/23 20:56:59

PHP图片处理|画布入门

以下是基于 PHP7.4 的 GD 库实现图片文字写入、绘制图案、渲染已有图片、设置背景色的完整代码案例兼容 PHP7.4 及以上版本&#xff1a; 前置说明 确保服务器已安装 GD 扩展&#xff1a;php -m | grep gd 查看是否存在GD 库常用函数在 PHP7.4 中均兼容&#xff0c;无需特殊适配…

作者头像 李华
网站建设 2025/12/24 0:06:23

Spring Data JPA 方法名查询特性的使用

Spring Data JPA 是 Spring 提供的一个用于简化 JPA&#xff08;Java Persistence API&#xff09;开发的框架&#xff0c;方法名查询特性允许你通过定义特定命名规则的方法来自动生成查询语句&#xff0c;而无需手动编写 SQL 或 JPQL&#xff08;Java Persistence Query Langu…

作者头像 李华
网站建设 2025/12/24 7:37:51

我用一个周末,写了一个“反内卷“的极简笔记工具

前言&#xff1a;我为什么要做这个&#xff1f; 每天我打开电脑&#xff0c;总会有这样的场景&#xff1a; 浏览网页时&#xff0c;看到一段好文案&#xff0c;想临时存一下和 ChatGPT/Claude 聊天时&#xff0c;AI 输出了一段很好的内容&#xff0c;想保存下来刷到一个好网址…

作者头像 李华
网站建设 2025/12/24 6:58:16

Python构建AI Agent自主智能体系统

核心要点 环境建模与状态表示 动作空间与策略选择 奖励机制与反馈循环 训练与优化 1. 环境建模与状态表示 环境建模是AI Agent系统的基础,它决定了Agent如何感知和理解外部世界。状态表示则是将环境中的信息转化为Agent可以处理的形式。 原理 环境建模:定义环境的规则和状态…

作者头像 李华