1

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

4

1 回答 1

1

您需要使用 Flash Player 10,因为我认为这是您第一次真正获得对 Microphone api 的访问权限。

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

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

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

编辑:我不想误导你。我认为上面的代码是用于预先录制的音频文件。如果您想在 flash 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();
    }
}
于 2011-05-16T16:43:05.403 回答