Правильное усечение данных PCM из ByteArray - PullRequest
0 голосов
/ 31 мая 2010

У меня есть ситуация, когда мне нужно обрезать небольшое количество звука с начала записанного клипа (обычно где-то между 110-150 мс, это несовместимое количество).

Я записываю на частоте 44100 и скорости 16 бит. Это код, который я использую:

public function get trimmedData():ByteArray {
        var ba:ByteArray = new ByteArray();
        var bitPosition:uint = 44100 * 16 * (recordGap / 1000);
        bitPosition -= int(bitPosition % 16); //should keep snapped to nearest sample, I hope
        ba.writeBytes(_rawData, (bitPosition / 8));
        return ba;
    }

Кажется, это работает по времени, но все записанное аудио становится статичным и грубым. Что-то не так с моим округлением? Это первый раз, когда мне нужно было изменить необработанные данные PCM, поэтому я не уверен насчет более мелких деталей.

Спасибо!

1 Ответ

0 голосов
/ 31 мая 2010

Похоже, что статическая проблема больше связана с объемами и ограничением, чем с этим триммером!

...