当前位置: 首页 > news >正文

Vue中字节流格式的 Base64编码转换为 Blob 对象保存成wav的音频文件

1、安装Vue组件FileSaver.js

npm install file-saver

2、使用

import { saveAs } from 'file-saver';const saveAudioToFile = (text) => {API({url: `/api/xxx/xxx?content=${text}`,method: "post",}).then(res => {let obj = res.data;if (obj.code === 200) {const base64Audio = obj.data.audio;const byteCharacters = atob(base64Audio);const byteArrays = [];for (let offset = 0; offset < byteCharacters.length; offset += 512) {const slice = byteCharacters.slice(offset, offset + 512);const byteNumbers = new Array(slice.length);for (let i = 0; i < slice.length; i++) {byteNumbers[i] = slice.charCodeAt(i);}const byteArray = new Uint8Array(byteNumbers);byteArrays.push(byteArray);}const blob = new Blob(byteArrays, { type: 'audio/wav' });const fileName = 'output.wav';saveAs(blob, fileName);console.log("音频已保存为 " + fileName);}}).catch(error => {console.error("保存音频失败", error);});
}

3、总结:

  1. Base64 解码:使用 atob 将 Base64 编码的字符串解码成字节字符。
  2. 字节转换:将解码后的字符转换为字节数组。
  3. Blob 创建:将字节数组用 Blob 封装,并指定 MIME 类型为 audio/wav
  4. 保存文件:使用 FileSaver.js 的 saveAs 函数保存生成的音频文件。

这样就可以将从后台获得的 Base64 编码的音频数据保存为 WAV 文件到本地。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Jmeter性能关注指标详解
  • Day18_Netty
  • Spark MLlib 特征工程系列—特征转换SQLTransformer
  • 数学建模学习(127):基于Python的模糊最佳-最差法(Fuzzy BWM)在多准则决策中的应用
  • 8.20-ansible剧本的使用+roles的应用
  • 书橱系统小程序的设计
  • C控制语句:分支和跳转(终章·题目)
  • redis | 认识非关系型数据库Redis的列表类型及python如何操作redis
  • 【Redis】Redis客户端——Jedis(Java)
  • MATLAB 计算两点沿某个方向的间距(81)
  • MFC工控项目实例之六CFile添加菜单栏
  • 软件测试工程师必须了解的B/S架构及其测试要点
  • 8.3 数据库基础技术-关系代数
  • 加州大学圣地亚哥分校 沉浸式遥操作机器人系统
  • [GKCTF 2021]excel 骚操作1
  • 【译】React性能工程(下) -- 深入研究React性能调试
  • 【跃迁之路】【735天】程序员高效学习方法论探索系列(实验阶段492-2019.2.25)...
  • Android Studio:GIT提交项目到远程仓库
  • C++入门教程(10):for 语句
  • golang中接口赋值与方法集
  • HTTP 简介
  • isset在php5.6-和php7.0+的一些差异
  • javascript数组去重/查找/插入/删除
  • macOS 中 shell 创建文件夹及文件并 VS Code 打开
  • node-sass 安装卡在 node scripts/install.js 解决办法
  • ⭐ Unity 开发bug —— 打包后shader失效或者bug (我这里用Shader做两张图片的合并发现了问题)
  • WinRAR存在严重的安全漏洞影响5亿用户
  • 浮现式设计
  • 力扣(LeetCode)56
  • 扑朔迷离的属性和特性【彻底弄清】
  • 适配mpvue平台的的微信小程序日历组件mpvue-calendar
  • 我看到的前端
  • 云栖大讲堂Java基础入门(三)- 阿里巴巴Java开发手册介绍
  • mysql面试题分组并合并列
  • 仓管云——企业云erp功能有哪些?
  • ​第20课 在Android Native开发中加入新的C++类
  • ​批处理文件中的errorlevel用法
  • # 飞书APP集成平台-数字化落地
  • (52)只出现一次的数字III
  • (C语言)编写程序将一个4×4的数组进行顺时针旋转90度后输出。
  • (Matlab)基于蝙蝠算法实现电力系统经济调度
  • (附源码)springboot太原学院贫困生申请管理系统 毕业设计 101517
  • (附源码)计算机毕业设计SSM教师教学质量评价系统
  • (接口封装)
  • (力扣记录)235. 二叉搜索树的最近公共祖先
  • (算法)Game
  • (完整代码)R语言中利用SVM-RFE机器学习算法筛选关键因子
  • (一)基于IDEA的JAVA基础1
  • (原创)Stanford Machine Learning (by Andrew NG) --- (week 9) Anomaly DetectionRecommender Systems...
  • **PHP二维数组遍历时同时赋值
  • .apk 成为历史!
  • .gitignore文件忽略的内容不生效问题解决
  • .Net CoreRabbitMQ消息存储可靠机制
  • .NET6使用MiniExcel根据数据源横向导出头部标题及数据
  • .net图片验证码生成、点击刷新及验证输入是否正确