Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to record voice in a browser?

I need users to record their voice on a browser and then automatically upload the resulting mp3 to a webserver.

I am thinking the user presses a big fat start record/stop record button to do this.

This would then save a file on the users hard disk. Then it would be efficiently compressed and automatically ftp'd up to a website.

Is it possible to do this using ActiveX or perhaps Java? Or are there libraries available that help?

The application is for users who can install software if need be so it will be possible to install exe's or whatever.

Any suggestions are most appreciated.

like image 855
Petras Avatar asked Feb 16 '09 23:02

Petras


3 Answers

The ideal solution would be getUserMedia and the Stream API. Unfortunately, it is currently not well-supported across modern browsers. As of June 14, 2012 the only browser confirmed to have support according to caniuse.com is Chrome 21. Others appear to be working on solid implementations.

Until native support arrives, Flash can access and record both audio and video.

like image 85
Sampson Avatar answered Oct 19 '22 10:10

Sampson


You can interact with a client's microphone using flash, this will require permission from the user. For implementation details please visit my reference.

Reference: http://fmsguru.com/showarticle.cfm?articleID=25

like image 33
TomHastjarjanto Avatar answered Oct 19 '22 10:10

TomHastjarjanto


The most efficient free-ish solution bandwidth-wise is probably to develop a Flash app that streams Speex data to a Flash Media Server (e.g. Red5/Wowza). It's a huge pain though.

A far simpler solution is to stream raw audio over a standard HTTP post. This can be done in Flash without a proprietary media server:

https://code.google.com/p/wami-recorder/

If you need MP3 on the server-side you can transcode using lame.

like image 34
Ian McGraw Avatar answered Oct 19 '22 09:10

Ian McGraw