Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Преобразовать данные с микрофона с 11кгц в 44кгц (http://www.flasher.ru/forum/showthread.php?t=143641)

RonEXI 21.08.2010 16:13

Преобразовать данные с микрофона с 11кгц в 44кгц
 
Записываю данные с микрофона:

Код AS3:

 
mic = Microphone.getMicrophone();
mic.gain = 100;
mic.rate = 11;
mic.addEventListener(SampleDataEvent.SAMPLE_DATA, micSampleDataHandler);
function micSampleDataHandler(event:SampleDataEvent):void
{       
    while(event.data.bytesAvailable)
    {
        var sample:Number = event.data.readFloat();
        soundBytes.writeFloat(sample);
    }
}

Получается обьект soundBytes с бинарными данными со звуком с частотой 11кгц (11кгц ставлю специально чтобы меньше весило при отправке на сервер).
В документации сказано что для проигрывания звука через обьект Sound нужен звук в формате 44кгц, но можно и преобразовать звук и из формата с меньшей частотой.

Цитата: "Можно также преобразовать микрофонные сэмплы, захваченные при низкой частоте, в частоту 44 кГц, которая требуется объекту Sound."

Сейчас если я пытаюсь проиграть звук то он просто сильно быстро играется, а мне требуется замедлить его до нормальной скорости.

Вопрос: Как сделать это преобразование из 11 в 44кгц?

LOS2008 21.08.2010 16:42

Самое тупое будет - продублировать каждый такт 4 раза.
По умному - сделать апроксимацию, линейную или сплайн. Но на сплайне флеш наверно умрёт, только если не выносить код в алхимию.

RonEXI 21.08.2010 16:50

продублировал вроде нормально, для микрофона соёдет.


Часовой пояс GMT +4, время: 18:36.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.