26

我要求允许用户使用他们的麦克风录制音频文件,但它必须在没有闪存的情况下工作,因为它需要在 iOS(移动 safari)、Android 浏览器或 Chrome 以及 PC/Mac 上的现代浏览器上工作.

是否有一种干净、简单的 HTML5 方法来录制音频并发布到服务器?我什么都没找到。

4

3 回答 3

36

您可以使用 HTML5 WebAudio API

音频和视频捕获介绍在 HTML5 中捕获音频和视频

一个使用示例Recorder.js录制音频的好库

使用 Recorder.js 的完整且有效的示例如何使用原生 HTML5 API 在 Chrome 中录制音频

其他 WebAudio API 演示HTML5 Web Audio API Demos and Libraries

支持的浏览器我可以使用 Web Audio API 吗?

关于将数据发送到其他服务器,使用 Recorder.js 您可以获得音频缓冲区,然后您可以使用 XMLHttpRequest 将 arraybuffer 或 blob 直接发布到目标服务器或编码为 base64。

MDN:发送和接收二进制数据

Html5Rocks: XMLHttpRequest2 中的新技巧,发送数据

于 2013-12-24T11:15:51.573 回答
3

专业地说,我会说不,HTML5 有音频 API,但目前它们的实现因浏览器而异。如果您这样做是为了某种技术演示,那么这可能就足够了,但否则您可能需要回退到其他技术,如闪存和/或本机应用程序以获得更可靠的结果。

于 2013-12-24T11:55:55.073 回答
2

getUserMedia()现在在移动设备上得到广泛支持:

和桌面:

  • 野生动物园 11
  • 铬合金
  • 火狐
  • 边缘 12
  • 歌剧

一旦获得网络摄像头/麦克风权限并且麦克风数据启动,您可以:

这是我制作的一个演示(live demoGitHub 上的源代码),它使用 Matt Diamond 的Recorder.js录制在 iOS 11 上的 Safari 中运行的音频(.wav 文件中的 pcm)。单击 Record 会提示用户允许麦克风访问:

在 iOS 11 上运行的 Recorder.js 演示 单击录制会提示用户允许麦克风访问

于 2018-07-10T18:52:40.833 回答