如何在 React 中播放 blob 对象的音频?

2024-03-07

我正在尝试使用 ReactJS 创建一个录音机应用程序。我使用了 npm 包反应麦克风 https://www.npmjs.com/package/react-mic服务于目的。但录音被保存为blob object.

如何在浏览器中播放录制的文件(blob对象)?以及如何将其作为音频文件上传到在线存储? (如火力基地)


重要的部分是 blobUrl。使用它您可以创建一个音频元素。 (这就是其他图书馆所做的)。

例如,在 React Mic 的 handleStop() 中,您可以在您的状态中设置该 url:

const handleStop = (recordedBlob) => {
    const url = URL.createObjectURL(recordedBlob.blob);
    setSrc(url) //setting the url in your state. A hook in this case btw
  }

然后您可以在组件中创建其他函数/方法并创建/播放音频对象:

const handlePlay = () => {
    const tmp = new Audio(src); //passing your state (hook)
    tmp.play() //simple play of an audio element. 
  }

您还可以将音频对象保存在您的状态中...无论如何,这是一个更多关于 javascript/html 的主题,而不是 React 或 React-mic

如果你想使用 npm 库,我可以推荐你反应-h5-音频播放器, https://www.npmjs.com/package/react-h5-audio-player它更友好。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 React 中播放 blob 对象的音频? 的相关文章

  • 如何监控浏览器中发出的所有自定义事件?

    我想监视网络浏览器中触发的所有自定义事件 任何标准浏览器都可以 需要明确的是 我知道您可以附加事件处理程序来查看何时触发 通常 事件 但如何可靠地检测嵌入对象或 jQuery 脚本是否触发自定义事件 我可以重构浏览器源代码来挂钩事件循环 但
  • 画布图像遮罩/重叠

    在我的项目中 我必须使用画布在另一个相同尺寸和图案图像上实现一个不同的颜色图像 并且图像不是圆形或矩形形状 所有这些都是波浪形状的 它将应用于单个主背景图像 以便在每个主背景图像上显示多个图形onclick功能 重叠的图像应更改为另一种选定
  • 使用 JavaScript 填写 PDF 表单

    这就是我所拥有的 用户填写很长的 html 表单 用户获取下载不同 pdf 的链接 这是可填写的表格 链接是使用 javascript 生成的 用户单击链接 生成 url 使用用户之前提交的数据 在表单中处理数据并完成字段 这是在表单内使用
  • 过滤器返回 true 或 false

    我正在使用过滤器在 data it 返回对象中查找 id 它返回的对象不是 true 或 false 如果我怎样才能返回 true 或 falseval recoredId valueId var hasMatch data filter
  • 使用 AntD 样式响应 Hook 表单

    我试图弄清楚如何将react hook form与antd前端一起使用 我已经制作了这个表单 它似乎正在工作 它是多部分表单向导的第 1 部分 只是不显示错误消息 谁能看到我在合并这两个表单系统时做错了什么 我没有收到任何错误 但我认为我已
  • Firebase 云消息传递 - 如何验证令牌?

    我正在使用 Firebase Cloud Messaging FCM 并且每次在客户设备上生成新令牌时 都会根据下面的缩写代码 我将此新令牌发送到我的服务器数据库 云 并将其保存在其中 以便能够发送未来推送通知使用 CFM API 从服务器
  • 拖放图像上传在服务器上不起作用

    我正在尝试实现拖放图像上传 我在网上找到了一个相当简单的脚本并适合我的使用 在我的本地安装中 文件上传得很好 但在服务器上却不行 从我的调试尝试来看 SERVER HTTP X FILENAME 甚至没有被 php 设置 我尝试了以下方法
  • Firebase Auth:此应用无权使用 Firebase

    我的应用程序 build gradle compile com firebaseui firebase ui auth 2 3 0 compile com google firebase firebase auth 11 0 4 compi
  • Angular UI.Bootstrap 单选按钮在 ng-repeat 中表现得很奇怪[重复]

    这个问题在这里已经有答案了 我在 Angular 的 ui bootstrap 中动态生成无线电模型的选项时遇到问题 我想我可以简单地对数组进行 ng repeat 使用 btn radio 属性的内容 如下所示 in the contro
  • 通过电子邮件发送在 HTML5 画布上创建的图像

    我有一个画布 用户可以通过交互来更改设计 现在 用户完成更改后 可以提交他的设计及其电子邮件 ID 但为了提交设计 我使用以下方法将画布转换为图像http www nihilogic dk labs canvas2image http ww
  • 如何混淆或使 JavaScript 文件不可读?

    我的应用程序中有 JavaScript 脚本 其中包含 JavaScript 和 jQuery 函数 所有用户与我的应用程序的交互都是动态的 并且通过 jQuery 传递到应用程序 我意识到 当我在客户端运行我的应用程序时 客户端可以通过查
  • Niceedit本地上传图片失败

    我是这样称呼编辑的 new nicEditor buttonList bold italic underline upload iconsPath img nicedit png uploadURI http server com inte
  • 如何让无限滚动发挥作用?

    我正在尝试让这个无限加载脚本在我的项目中工作 这是我的 HTML div div div class pagina div div class pagina div div class pagina div div class pagina
  • NodeJS 中的缩进多行日志记录

    我要打印JSON stringify d 反对控制台 将上下文作为 Mocha 测试套件输出的一部分 当测试缩进时 我希望对象日志行向右缩进足够远 例如 3 4 个制表符空格 以便它们可以识别地位于右侧describe group 我怎样才
  • 是否可以从 webpack 中的文件名中删除特殊字符?

    长话短说 我的资产文件名中不能包含某些字符 例如连字符 我没有运气通过解析 webpack 文档来弄清楚是否可以使用正则表达式或类似的东西重命名文件 这样我就可以从我无法控制源文件名的 3rd 方包中删除任何连字符 我的超级天真的例子是这样
  • 更改 CSS 样式表的选择器属性

    以下是我们传统上如何更改重复元素的样式 将样式应用到每个元素 function changeStyle selector prop val var elems document querySelectorAll selector Array
  • Material UI 选择覆盖主题中的位置

    我想覆盖主题中选择字段下拉列表的位置 不必在每个选择上实现它 我尝试过 createMuiTheme overrides MuiSelect select MenuProps getContentAnchorEl null anchorOr
  • 当 jQuery .remove() 用于删除脚本标签时,它是否会清除加载的 JavaScript?

    正如标题所示 如果我使用以下命令从 DOM 中删除脚本标签 scriptid remove javascript 本身是保留在内存中还是被清除了 或者 我完全误解了浏览器处理 javascript 的方式吗 这是很有可能的 对于那些对我提问
  • ES6解构对象赋值函数参数默认值

    您好 我正在查看在传递函数参数时使用对象解构的示例对象解构演示 https developer mozilla org en US docs Web JavaScript Reference Operators Destructuring
  • 通过jquery ajax()和serialize()提交html表单

    我想通过 jquery ajax 提交此表单 这是我所做的 但它不起作用 即表单正在提交并刷新页面 但我没有看到响应 即在同一页面上打印数组 HTML

随机推荐

  • 子串、切片、其他?

    根据MDN https developer mozilla org en US docs Web JavaScript Reference Global Objects String substr substr被认为是最终可能被弃用的遗留代
  • 如何从 microk8s 部署 Pod 访问网络中的主机

    我正在尝试从部署容器内访问位于另一台服务器 但在我的网络上 的主机 并且我正在使用microk8s 问题是在我所在的服务器上microk8s安装完毕后我可以轻松 ping 通它ping my network host qa local 但是
  • ngInject 和闭包编译器

    我尝试在高级模式下编译以下代码但未成功 description App configuration param angular routeProvider routeProvider constructor ngInject functio
  • R 中的向量化 IF 语句?

    x lt seq 0 1 10 0 1 y lt if x lt 5 1 else 2 这会发出警告 或自 R 版本 4 2 0 以来的错误 the condition has length gt 1 我想要if对每个案例进行操作 而不是对
  • 在方法中编写“return”的完美方式是什么

    我不喜欢有多个返回行的方法 所以我创建了一个带有字符串结果的返回值 并且在每种情况下我都写 result some 但是当我编写 try catch 机制时 我必须设置公共字符串结果 因为 如果我在 try 中返回结果 编译器将启动错误 并
  • 将 bool 属性绑定到 WinForm 的 BackColor 属性

    我有一个Form in my WinForm应用程序 其中包含TextBox和这个TextBox绑定到FirstName的财产Person Object public class Person string firstName public
  • 使用 spring-session 在微服务之间传播凭据的最佳方法

    我们使用的架构与中描述的架构非常相似spring io 上的这个很棒的指南 https spring io guides tutorials spring security and angular js the api gateway pa
  • YouTubePlayer:从纵向手机方向进入全屏可以轻松退出全屏

    如果您纵向握住手机并单击全屏按钮 YouTubePlayerView 如果您稍微摇动手机 它可以轻松让您返回 关闭全屏 官方 YouTube 应用程序正常工作 您在纵向握住手机的同时按下全屏按钮 如果您稍微摇晃它 它仍然保持全屏横向模式 如
  • 我可以在蛋白石中使用红宝石吗?

    There s opal irb and opal jquery and vienna但是有没有办法通过Opal直接在浏览器中使用gems呢 您可以添加宝石lib到 Opal 加载路径的路径 使用Opal use gem 常见的陷阱有 使用
  • 将数字拆分为总和部分

    有没有一种有效的算法可以将数字分成N分段 以便数字之和等于原始数字 并具有最小基数 例如 如果我想将 50 分成 7 个小节 并且最小基数为 2 我可以这样做10 5 8 2 3 5 17 以及任何其他数量的组合 我想将数字保留为整数 并且
  • 每个日志级别应包含哪些信息? [复制]

    这个问题在这里已经有答案了 可能的重复 日志记录代码应该放在哪里 什么级别 https stackoverflow com questions 3658527 where what level should logging code go
  • 可迭代对象的正确 phpdoc 注释?

    我在尝试为以下代码示例获得正确的自动完成功能时遇到了一些问题 我在 Win7 机器上使用 PHPStorm 7 首先只是一个简单的课程 Class myObject class myObject some method public fun
  • 更多 C# 自动转换为 Excel

    这将启动一个新的 Excel 工作簿 Excel Application oXL Excel Workbook oWB oXL new Excel Application oXL Visible true oWB Excel Workboo
  • 在 EF 查询中添加 DateTime 和 TimeSpan 的代码示例

    我正在寻找这个问题的代码示例 将 DateTime Add TimeSpan 与 LINQ 结合使用 https stackoverflow com questions 16781587 using datetime addtimespan
  • 将“浮动”内容放置在文本段落的右下角

    这是代码 http jsfiddle net ym2GQ http jsfiddle net ym2GQ p background lightblue end background orange float right display in
  • Firebase 存储的上传/下载速度非常慢

    故事 我在应用程序中使用 Firebase Storage 将大文件上传到 Firebase 存储中 文件大多是视频 有时甚至超过 2 GB 我做了什么 这就是我所做的 UploadTask originalUpload originalD
  • Python 根据另一个列表对一个列表进行排序

    我有两个列表 第一个列表是键顺序 第二个列表是元组列表 colorOrder red blue yellow green tupleList 111 red 222 pink 333 green 请注意 这两个列表不是一对一的关系 有些颜色
  • 从表中显示 MySQL 数据的 C++executeQuery() 错误

    我需要一些帮助 我有这段代码 如下 将数据添加到 MySQL 表 然后返回同一个表 代码运行良好 当我运行它时 它将列添加到 MySQL 表中 但它停止了 并出现错误 SQL error Error message 字面意义上的空白 如果我
  • C 为什么函数指针作为参数而不是仅仅作为函数?

    我一直在阅读有关以函数作为参数的函数 特别是在 C 中 它们使用函数指针 假设我想实现牛顿拉夫森方法 以简单的方式 来计算非线性方程中的零点 double derivative double f double double x double
  • 如何在 React 中播放 blob 对象的音频?

    我正在尝试使用 ReactJS 创建一个录音机应用程序 我使用了 npm 包反应麦克风 https www npmjs com package react mic服务于目的 但录音被保存为blob object 如何在浏览器中播放录制的文件