是否有可能获得 adobesflash.media.SoundMixer
类的来源?
如果是,我在哪里可以找到/得到它?
我想“克隆”将.computeSpectrum()
原始声波( byteArray )从麦克风输入转换为频谱的功能。
我找到了几个像这样的例子-> http://pierrickpluchon.fr/blog/as3-how-to-plug-your-microphone-with-a-soundspectrum-in-flash-player-10-1 /
我发现的所有其他方法都差不多。
问题是总有一场Sound()
比赛,我不想要什么。(我不想要任何环回)
但是,如果我没有播放声音,我无法使用该函数通过将 FFTMode 设置为 true( )SoundMixer.computeSpectrum()
来将来自 的 ByteArray 转换Microphone
为频谱computeSpectrum(myByteArray,true)
另外,如果您知道从原始声波中获取频谱的任何其他方法,请告诉我。
更新
我的代码:
var bytes:ByteArray = new ByteArray();
var mic:Microphone = Microphone.getMicrophone();
mic.rate = 44;
// mic.gain = 100; // gain
mic.addEventListener(SampleDataEvent.SAMPLE_DATA, onSampleData);
function onSampleData( event:SampleDataEvent ):void {
graphics.clear();
graphics.lineStyle(1, 0xFF0000);
for( var i:uint = 0; i < 256; i++ ) {
var num:Number = event.data.readFloat() * 100 + 100; // -Math.abs( )
if( i == 0 ) {
graphics.moveTo( i, num );
} else {
graphics.lineTo( i, num );
}
}
}