actionscript 3 でデッド検出を実行しようとしています。私の考えは、周波数スペクトルを表す x 軸上にドットの配列 (MovieClips) を作成することです。SoundMixer.computeSpectrum(bytes, true, 0); 真に設定されています。配列の最初のドット インスタンスにアクセスするにはどうすればよいですか。次に、現在の各フレームで最高値を確認し、最後の値と比較して測定します。しきい値を設定する必要があると思います。値がしきい値の範囲内にある場合、ビートと呼ばれます....私は迷っています。誰かが私を正しい方向に向けることができます..
前もって感謝します。
var snd: Sound = new Sound();
var req: URLRequest = new URLRequest("mySong.mp3");
snd.load(req);
var channel: SoundChannel;
channel = snd.play();
addEventListener(Event.ENTER_FRAME, onEnterFrame);
snd.addEventListener(Event.SOUND_COMPLETE, onPlaybackComplete);
const CHANNEL_LENGTH: int = 256;
const BUFFER_LENGTH: int = 512;
var dot:Dot;
dot.cacheAsBitmap = true;
var myArray:Array = new Array();
var bytes:ByteArray = new ByteArray();
function onEnterFrame(event: Event): void
{
SoundMixer.computeSpectrum(bytes, true, 0);
for (var i:int = 0; i < CHANNEL_LENGTH; i+=8) // channel_length = 256
{
var sampleValue:Number = bytes.readFloat();
dot = new Dot();
dot.x = i * 2;
dot.y = sampleValue * 250; //50 + (i * 30)
addChild(dot);
myArray.push(dot);
}
}