在flex中绘制麦克风的波形,是否可能?

时间:2010-10-08 06:48:35

标签: flex audio visualization waveform

我正在使用Adobe Flex制作录音机(麦克风,NetStream),我想从麦克风中获取当前音频波以显示在可视化区域,任何想法如何获取数据?

1 个答案:

答案 0 :(得分:1)

您需要使用Flash Player 10,因为我认为这是您第一次真正访问Microphone apis。

然后你可以调用一个简单的函数来获取麦克风数据:

private var soundBytes:ByteArray    = new ByteArray;
SoundMixer.computeSpectrum(soundBytes, false);

我通常在输入框处理程序中调用computeSpectrum代码并从那里绘制波形。

编辑:我不想误导你。我认为上面的代码是针对预先录制的音频文件。如果你想在闪存10中使用麦克风,你可以这样做:

private var _mic:Microphone;
_mid = Microphone.getMicrophone();
_mic.addEventListener( SampleDataEvent.SAMPLE_DATA, onSampleData );

protected function onSampleData( event:SampleDataEvent ):void {
    while( event.data.bytesAvailable ){
        var n:Number = event.data.readFloat();
    }
}