Я работаю над 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 формат.
Спасибо, я продолжу дальше с массивом байтов, так как мне удалось применить усиление на нем во время записи и вычислить максимальную амплитуду при каждом обратном вызове записи. Переход к короткому будет включать в себя изменение моего алгоритма усиления, который, однако, дал мне много головных болей. –
@AlexandruCircus: Вы могли рассчитать максимальное значение из AudioRecord, используя массив байтов. Большинство рабочих примеров, где используется короткий массив. Был бы рад, если бы вы могли помочь мне вычислить max из массива байтов (при воспроизведении звука с помощью AudioRecord). ТИА. –