adobesflash.media.SoundMixer
クラスのソースを入手することは可能ですか?
ある場合、どこで見つけて入手できますか?
.computeSpectrum()
マイク入力から生の音波 ( byteArray ) を周波数スペクトルに変換する関数を「複製」します。
このような例をいくつか見つけました -> http://pierrickpluchon.fr/blog/as3-how-to-plug-your-microphone-with-a-soundspectrum-in-flash-player-10-1 /
私が見つけた他のすべての方法はほとんど同じです。
問題は、Sound()
私が望んでいない演奏が常にあることです。(ループバックはしたくない)
しかし、サウンドを再生していない場合、SoundMixer.computeSpectrum()
関数を使用しMicrophone
て、FFTMode を true に設定して からの ByteArray を周波数スペクトルに変換することはできません ( 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 );
}
}
}