js实现网页端录音功能

news/2024/9/20 18:09:05

1、代码

首先安装依赖包:recorderx

npm install recorderx -S
<template><div class="container"><div class="mt-30"><el-button @click="onStartRecord">开始录音</el-button><el-button @click="onStopRecord">停止录音</el-button></div></div>
</template><script>
export default {name: "home",
};
</script>
<script setup>
import { reactive, ref, computed, watch, toRaw, onMounted } from "vue";
import moment from "moment";
import Recorder, { ENCODE_TYPE } from "recorderx";let recorder;const recordName = ref("");
function onStartRecord() {console.log("开始录音");recorder = new Recorder(true);recorder.start().then(() => {console.log("start recording");}).catch((error) => {console.log("Recording failed.", error);});
}function onStopRecord() {console.log("停止录音");recorder.pause();let wav = recorder.getRecord({ encodeTo: ENCODE_TYPE.WAV });console.log("wav", wav);
const aLink = document.createElement("a");const blob = wav; // new Blob([data], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });aLink.style.display = "none";aLink.href = URL.createObjectURL(blob);recordName.value = moment().format("YYYYMMDDHHmmss") + ".mp3";aLink.setAttribute("download", recordName.value); // 设置下载文件名称
  document.body.appendChild(aLink);aLink.click();URL.revokeObjectURL(aLink.href); // 清除引用
  document.body.removeChild(aLink);
}
</script>

2、效果

停止录音后,文件会自动保存到磁盘

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/62633.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

教你几招,轻松设置Win11右键恢复旧版模样

大家好!今天要教大家如何把 Win11 右键菜单变回完整的展开模式哦!其实很简单,只要在 Windows 开始图标下面的运行里输入一段代码就可以啦!接下来就让我来详细地跟大家分享一下这个方法吧!Win11右键菜单恢复为完整展开模式的方法1、首先,按键盘上的【 Win + X 】组合键,或…

第三周《密码系统设计》学习总结思维导图

marmaid代码为:graph LRA[密码系统设计第三周] --> B[《Windows C/C++ 加密解密实战》]B --> C[第四章]C --> T[4.2 加密基础]W --> U[CryptoAPI介绍]T --> V[加密概念]T --> X[加密类型]X --> d[对称加密]X --> e[非对称加密]T --> f[加密场景]C …

从虚拟到现实:数字孪生与数字样机的进化之路

​数字化技术高速发展的当下,计算机辅助技术已成为产品设计研发中不可或缺的一环,数字样机(Digital Prototype, DP)与数字孪生技术便是产品研发数字化的典型方法。本文将主要介绍数字样机与数字孪生在国内外的发展,并针对其技术痛点提出一种基于国产自研仿真工具进行虚拟模…

WPF 数据模板Data Template

数据模板 DataTemplate 控件模板决定了数据的展示形式和用户体检,在软件UI设计中非常重要。同样数据的展示形式越来越多样化,正所谓:横看成岭侧成峰,远近高低各不同。同样的数据内容,在DataGrid中的展示是文本的列表形式,在ComboBox中是下拉框的形式。给数据披上外衣,将…

性能测试之链接服务器实操

一、项目背景 因公司业务发展用户量增多,一些重要的接口请求也随着增多,导致接口响应变慢,需要优化接口的性能,所以团队里面就开始针对这些接口进行性能压力测试。二、前期准备工作 1、性能测试的服务器(不能在生产的机器上进行测试) 2、Jmeter压测工具三、操作流程 1、从…

记录一次fs配置导致串线的问题

概述 freeswitch是一款简单好用的VOIP开源软交换平台。 fs在实际的使用过程中也会经常碰到莫名其妙的问题,大部分都是配置问题。 环境 CentOS 7.9 freeswitch 1.10.7 docker 26.1.1 问题描述 组网方案如下。其中的fs-reg是注册服务器,fs1和fs2是业务媒体服务器,B1B2是俩个B路…

WPF 模板总结(Template)

模板(Template): WPF系统不但支持传统的Winfrom编程的用户界面和用户体验设计,更支持使用专门的设计工具Blend进行专业设计,同时还推出了以模板为核心的新一代设计理念。 在WPF中,通过引入模板(Template)微软将数据和算法的“内容”与“形式”解耦了。模板是算法和数据的…

Linux-手动扩容磁盘分区

Linux-手动扩容磁盘分区 1. 手动扩容磁盘分区 实例演示:使用 fdisk 扩容 ext4 磁盘分区 在本示例中,我们将阿里云的高效云盘从50GB扩容到60GB。 1.1 扩容前检查磁盘分区信息检查并记录分区表信息: fdisk -l /dev/vdb输出示例: Disk /dev/vdb: 60 GiB, 64424509440 bytes, 1…