поиск бросить стек я запутался. Итак, , что моя проблема:Android. Преобразование файла из WAV в OGG
Я использую AudioRecord
класс записывать некоторые аудио, вот код:
AudioRecord record = new AudioRecord(AudioSource.VOICE_RECOGNITION,
SAMPLING_RATE,
AudioFormat.CHANNEL_IN_MONO,
AudioFormat.ENCODING_PCM_16BIT,
mBufferSize);
record.startRecording();
int read = 0;
while (mIsRecording) {
read = record.read(mAudioBuffer, 0, mBufferSize);
if ((read == AudioRecord.ERROR_INVALID_OPERATION) ||
(read == AudioRecord.ERROR_BAD_VALUE) ||
(read <= 0)) {
continue;
}
proceed();
write(out);
}
После завершения записи, я уверен, преобразование этой .pcm
необработанных данных из AudioRecord
в .wav
:
private void convertRawToWav() {
File file_raw = new File(mFileNameRaw);
if (!file_raw.exists()) { return; }
File file_wav = new File(mFileNameWav);
try {
PcmAudioHelper.convertRawToWav(WavAudioFormat.mono16Bit(SAMPLING_RATE), file_raw, file_wav);
if (handler != null) {
handler.onRecordSuccess();
}
} catch (IOException e) {
e.printStackTrace();
if (handler != null) {
handler.onRecordSaveError();
}
}
}
мне нужно формат .wav
в будущем, потому что облицовка функция в моем приложении, скопировано с Ringdroid, которая не поддерживает формат OGG, для этого: ПОЖАЛУЙСТА НЕ РЕКОМЕНДУЮ ME для записи аудио, OGG НА ЛЕТУ
ГЛАВНЫЙ ВОПРОС: формат Wav слишком тяжелый вес, и мне нужно, чтобы преобразовать его в меньший, который является либо MP3, либо OGG. MP3 запатентован, поэтому это не вариант. Что мне нужно, это: Для преобразования .wav
файл в .ogg
файл так что вес будет гораздо меньше
Что я нашел: This library, но только преобразует .pcm
данные в .ogg
во время записи, и мне нужно конвертировать весь файл после его обработки как .wav
Привет, THX для ответа, но это формат MP3, это не вариант для меня, мне нужен только OGG –
О, извините. Таким образом, вы можете использовать ffmpeg-обертку, например [this] (https://github.com/lalongooo/ffmpeg4android_demo) с командой запуска «ffmpeg -i audio.wav -acodec libvorbis audio.ogg» или что-то в этом роде. –
в теории я могу, я обдумывал это, и пришел к выводу, что интегрировать такую огромную библиотеку для одной функции overkill = ( –