Чтобы обработать существующий аудиопоток, вы должны настроить выходной звуковой объект, не загружая в него звук. Затем прослушайте этот звуковой объект для SampleDataEvent.SAMPLE_DATA, который запускается всякий раз, когда начинается воспроизведение звукового объекта, для которого буфер пуст. Вам нужно будет заполнить его буфер стерео данными PCM (парами чисел с плавающей запятой.)
Чтобы получить эти цифры, используйте метод Sound.extract () для вашего входного звукового объекта (тот, который вы просто назвали sound в коде выше), чтобы прочитать PCM данные в ByteArray. Обработайте данные этого ByteArray так, как вы хотите, и поместите их в выходной буфер.
var input : Sound;
var output : Sound;
// ... set up your input sound source ... //
output = new Sound();
output.addEventListener(SampleDataEvent.SAMPLE_DATA, handleSampleData);
output.play();
// The SAMPLE_DATA event is dispatched whenever the output Sound object
// buffer is empty. Fill the buffer to keep playing sound.
function handleSampleData(ev : SampleDataEvent) : void
{
var buffer : ByteArray = new ByteArray;
input.extract(buffer, 2048);
// PCM data from input is now in the buffer ByteArray. Filter the sound
// data according to your requirements here.
ev.data.writeBytes(buffer);
}
В справочной документации также приведен пример кода на эту тему для метода extract () .