2011-06-07 48 views
3

如果想要在浏览器中录制来自麦克风输入的声音,现在可以通过Flash进行录音。 (Afaik目前还没有其他好的选项可以在浏览器中使用)。在浏览器中录制声音

是否有一个简单的swf-plugin允许这样做?也就是说,通过选项“开始录制”,“停止录制”,“获取录制的声音波形(或类似)”。

+0

你能够在服务器上使用类似闪存介质服务器的东西吗? – Ben 2011-06-07 10:09:54

+1

相关:http://stackoverflow.com/questions/1211289/recording-audio-in-flash和这一个与一些代码的链接http://stackoverflow.com/questions/3318544/sound-recording-by-using-动作 – 2011-06-07 11:41:18

回答

5

这个问题是有点老了,但我最近有这个答案我发现下面的文章最有用:

http://www.html5rocks.com/en/tutorials/getusermedia/intro/

随着HTML 5,你可以完全避免Flash和简单的使用

<input type="file" accept="audio/*;capture=microphone"> 

氏s减轻了对Flash的依赖(正如你所说你担心跨浏览器的兼容性),并且大多数最新的桌面和移动浏览器仍然能够理解它。

1

自从带有来自Microphone的SampleData(event)的FlashPlayer 10.1以后,您可以轻松完成此操作。

microphoneInstance = Microphone.getMicrophone();  
microphoneInstance.addEventListener(SampleDataEvent.SAMPLE_DATA, sampleDataHandler); 

//will contains your microphone RAW sound data 
buffer = new ByteArray(); 
function sampleDataHandler(event:SampleDataEvent):void 
{    
    while(event.data.bytesAvailable > 0) 
     buffer.writeFloat(event.data.readFloat()); 
} 

一个例子(有代码),本地记录(没有任何服务器)和保存WAV文件:

MicRecorder, a tiny microphone library by Thibault Imbert MicRecorder - A tiny AS3 Microphone library on Google Code

的其他例(无代码),也本地记录但保存MP3文件:

http://unitzeroone.com/labs/rtmic2mp3/