我需要允许用户使用他们的麦克风录制音频文件,但它必须在没有闪存的情况下工作,因为它需要在iOS(移动版Safari),Android浏览器或Chrome以及现代浏览器上工作。 PC / Mac的。
是否有一种简洁的HTML5方法用于录制音频和发布到服务器?我找不到任何东西。
答案 0 :(得分:36)
您可以使用HTML5 WebAudio API。
音频和视频捕捉简介Capture audio & video in HTML5
使用样本Recorder.js
录制音频的好图书馆使用Recorder.js How to record audio in Chrome with native HTML5 APIs
的完整且有效的示例其他WebAudio API演示HTML5 Web Audio API Demos and Libraries
支持的浏览器Can I use Web Audio API?
关于将数据发送到其他服务器,使用Recorder.js可以获取音频缓冲区,然后您可以使用XMLHttpRequest将arraybuffer或blob直接POST到目标服务器或编码为base64。
MDN:Sending and Receiving Binary Data
Html5Rocks:New trick ins XMLHttpRequest2, sending data
答案 1 :(得分:3)
从专业角度说我会说不,有HTML5的音频API,但它们的实现目前在不同的浏览器中有所不同。如果您正在进行各种技术演示,那么这可能就足够了,否则您可能需要回退到其他技术,如闪存和/或本机应用程序,以获得更可靠的结果。
答案 2 :(得分:1)
getUserMedia()
现在在移动设备中得到广泛支持:
和台式机:
一旦获得了网络摄像头/麦克风的许可,麦克风数据就会启动:
这是我制作的一个演示(live demo,source on GitHub),该演示使用Matt Diamond的Recorder.js来录制在iOS 11的Safari中运行的音频(.wav文件中的pcm)。用户允许麦克风访问: