2016-10-13 18 views
1

поиск бросить стек я запутался. Итак, , что моя проблема: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

ответ

0

Посмотрите на this lame wrapper project.

+0

Привет, THX для ответа, но это формат MP3, это не вариант для меня, мне нужен только OGG –

+0

О, извините. Таким образом, вы можете использовать ffmpeg-обертку, например [this] (https://github.com/lalongooo/ffmpeg4android_demo) с командой запуска «ffmpeg -i audio.wav -acodec libvorbis audio.ogg» или что-то в этом роде. –

+0

в теории я могу, я обдумывал это, и пришел к выводу, что интегрировать такую ​​огромную библиотеку для одной функции overkill = ( –

0

Wav-файл - это просто большой заголовок + PCM. Все, что вам нужно сделать, это удалить 44 байта в передней части WAV, чтобы получить PCM и использовать код, который вы поделили с нами, для преобразования в OGG.

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

  • Нет связанных вопросов^_^