我要求允许用户使用他们的麦克风录制音频文件,但它必须在没有闪存的情况下工作,因为它需要在 iOS(移动 safari)、Android 浏览器或 Chrome 以及 PC/Mac 上的现代浏览器上工作.
是否有一种干净、简单的 HTML5 方法来录制音频并发布到服务器?我什么都没找到。
我要求允许用户使用他们的麦克风录制音频文件,但它必须在没有闪存的情况下工作,因为它需要在 iOS(移动 safari)、Android 浏览器或 Chrome 以及 PC/Mac 上的现代浏览器上工作.
是否有一种干净、简单的 HTML5 方法来录制音频并发布到服务器?我什么都没找到。
您可以使用 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 中的新技巧,发送数据
专业地说,我会说不,HTML5 有音频 API,但目前它们的实现因浏览器而异。如果您这样做是为了某种技术演示,那么这可能就足够了,但否则您可能需要回退到其他技术,如闪存和/或本机应用程序以获得更可靠的结果。
getUserMedia()
现在在移动设备上得到广泛支持:
和桌面:
一旦获得网络摄像头/麦克风权限并且麦克风数据启动,您可以:
这是我制作的一个演示(live demo,GitHub 上的源代码),它使用 Matt Diamond 的Recorder.js录制在 iOS 11 上的 Safari 中运行的音频(.wav 文件中的 pcm)。单击 Record 会提示用户允许麦克风访问: