How to record audio on webpage (iOS, Android, PC/Mac) - no flash

馋奶兔 提交于 2019-11-28 03:59:33

You can use the HTML5 WebAudio API.

An introduction to audio and video capturing Capture audio & video in HTML5

A good library to record audio with samples Recorder.js

A complete and working sample using Recorder.js How to record audio in Chrome with native HTML5 APIs

Other WebAudio API demos HTML5 Web Audio API Demos and Libraries

Supported browsers Can I use Web Audio API?

Regarding to send the data to other server, using Recorder.js you can get the audio buffer, then you could use XMLHttpRequest to POST the arraybuffer or blob to the destination server directly or encoded as base64.

MDN: Sending and Receiving Binary Data

Html5Rocks: New trick ins XMLHttpRequest2, sending data

Professionally speaking I would say no, there are audio APIs for HTML5 but their implementation varies across browsers at the moment. If you're doing this for a tech demo of sorts then that might suffice but otherwise you might need to fall back to other technologies like flash and/or native apps for more reliable results.

getUserMedia() is now widely supported across mobile:

and desktop:

  • Safari 11
  • Chrome
  • Firefox
  • Edge 12
  • Opera

Once webcam/mic permission is given and the mic data kicks in you can:

Here's a demo I made (live demo, source on GitHub) that uses Matt Diamond's Recorder.js to record audio (pcm in .wav files) running in Safari on iOS 11. Clicking Record prompts the user to allow microphone access:

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!