
Код AS3:
_out_snd.addEventListener(SampleDataEvent.SAMPLE_DATA, processSound);
_channel = _out_snd.play(pos);//независимо от pos играется сначала?
function processSound(event:SampleDataEvent):void {
_samples = new ByteArray();
var len:Number = buf[trackDesc].sound.extract(_samples, BUFFER_SIZE);/*надо
указать место извлечения, если вы хотите обрабатывать данные не сначала*/
var i:int=0;
var l:Number;
var r:Number;
if ( len < BUFFER_SIZE ) { // If end of MP3, start over
len += buf[trackDesc].sound.extract(_samples,BUFFER_SIZE-len,0);/*тут
третий параметр можно опустить, последовательне вызовы extract сдвигают начало выборки
на значение 2го параметра*/
}
_samples.position = 0;
while (i < BUFFER_SIZE) {
event.data.writeFloat(_eqL.compute(_samples.readFloat()));
event.data.writeFloat(_eqR.compute(_samples.readFloat()));
i++;
}
}//не учитывается event.position