У меня есть ситуация, когда мне нужно обрезать небольшое количество звука с начала записанного клипа (обычно где-то между 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, поэтому я не уверен насчет более мелких деталей.
Спасибо!