3

Я работаю над Android-приложение, которое записывает аудио. Для лучшего качества звука лучше использовать буфер short с при чтении?Android AudioRecord - используя короткий массив или массив байтов?

//aRecorder.read(shortBuffer, 0, shortBuffer.length); 
aRecorder.read(byteBuffer, 0, byteBuffer.length); 

Использование short[] не такой же, как с помощью byte[] и рассматривая образец из 2 bytes(byteBuf[i] и byteBuf[i+1])? Если я использую short[], я должен преобразовать его в любом случае в ByteBuffer, чтобы записать его в файл.

Я спрашиваю об этом, потому что я хочу знать, переключусь ли я в буфер short s, мои записи будут точнее? Например, shortBuffer[0] содержит ту же информацию, что и byteBuffer[0] и byteBuffer[1]?

Запись может быть в 16 бит PCM или 8 бит PCM (Пользователь может выбрать частоту дискретизации, NR каналов, PCM 16 или 8, и т.д.)

я должен отметить, что выходной файл будет в WAV формат.

ответ

3

Там нет никакой разницы между использованием Короткие или Байт буфер, это всего лишь два представления одних и тех же исходных данных.

Единственная разница, о которой я могу думать, заключается в том, что вы ограничиваете свои возможности в отношении доступа к данным во время записи, поскольку вкратце минимальное представление данных будет 16 бит (короткий размер), но затем вы можете просто xAnd часть короткого объекта, чтобы получить один из его байтов.

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

+0

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

+0

@AlexandruCircus: Вы могли рассчитать максимальное значение из AudioRecord, используя массив байтов. Большинство рабочих примеров, где используется короткий массив. Был бы рад, если бы вы могли помочь мне вычислить max из массива байтов (при воспроизведении звука с помощью AudioRecord). ТИА. –

Смежные вопросы