Улучшить качество записи звука в Android?

Я использую MediaRecorder для записи звука в android. Я получаю очень плохое качество звука при записи. Я проверил запись на айфоне, она очень хорошая, но в андроиде я получаю ужасный звук.

Для записи звука использую:

 recorder = new MediaRecorder();
 recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
 recorder.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT);
 recorder.setAudioEncoder(MediaRecorder.AudioSource.DEFAULT);
 recorder.setOutputFile(path);
 recorder.prepare();
 recorder.start(); 

Как улучшить качество аудиозаписи?


person Nikunj Patel    schedule 22.02.2012    source источник
comment
comment
ты нашел какое-нибудь решение? и улучшение качества звука   -  person curiousMind    schedule 27.06.2018


Ответы (2)


Попробуй это -

recorder = new MediaRecorder();
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
recorder.setAudioEncoder(MediaRecorder.getAudioSourceMax());
recorder.setAudioEncodingBitRate(16);
recorder.setAudioSamplingRate(44100);
recorder.setOutputFile(path);
recorder.prepare();
recorder.start(); 
person Praveenkumar    schedule 22.02.2012
comment
Я пробовал это, и теперь возникает другая проблема ... он не записывает голос - person Nikunj Patel; 22.02.2012
comment
Вы даете разрешение в Manifest.xml - person Praveenkumar; 22.02.2012
comment
я ... записывать аудио и писать внешний - person Nikunj Patel; 22.02.2012
comment
Ведь мой код не работает, да? Просто проверьте мой обновленный код. - person Praveenkumar; 22.02.2012
comment
Привет ! теперь он работает, теперь он играет, но не имеет никакой разницы. так как я могу улучшить качество звука? - person Nikunj Patel; 22.02.2012
comment
подскажите, что мне делать, чтобы убрать фоновый шум? - person Nikunj Patel; 22.02.2012
comment
Фоновый шум? Это означает? - person Praveenkumar; 23.02.2012
comment
при записи звука записывается и фоновый шум .... так как этого не сделать › - person Nikunj Patel; 24.02.2012
comment
Вот как мы можем это уменьшить. Потому что это тоже звук. Если вы хотите уменьшить это. Вы должны записывать голос в одиночку или записывать с пустой комнатой. Я так думаю. - person Praveenkumar; 24.02.2012
comment
Я пробовал этот рекордер. SetAudioEncoder (MediaRecorder.getAudioSourceMax ()); но это дает мне IllegalStateException (недопустимый аудиокодер), вы можете сказать мне, как улучшить качество звука и качество его воспроизведения - person Himanshu Agarwal; 03.07.2014
comment
recorder.setAudioEncodingBitRate(16); Это установило бы битрейт на 16 бит в секунду, что очень плохо .. - person James Goodwin; 08.07.2015
comment
Это дает java.lang.IllegalArgumentException: Invalid audio encoder - person Max; 03.09.2016
comment
Чтобы уточнить, вам, вероятно, следует сделать что-то вроде recorder.setAudioEncodingBitRate(16 * 44100);, а не использовать 16. 16, вероятно, битовая глубина, но слишком мала для битовой скорости. - person Grant; 22.03.2017

Android в основном поддерживает 3 звуковых формата (я имею в виду с точки зрения создания): 3gp, mp4 и amr. Вообще-то качество там очень плохое, тут ничего не поделаешь.

В любом случае вы можете использовать внешние mp3-кодеки или сохранить его как файл wave. Звук будет более четким, но такой кодек (wav) потребует большого голосового файла в трех форматах, упомянутых выше.

person Jviaches    schedule 22.02.2012
comment
я не согласен с вами, потому что в мире кодирования это возможно - person Nikunj Patel; 22.02.2012
comment
Я хотел бы знать, как тогда - person Jviaches; 22.02.2012
comment
как сказал СпК ... . . и все же я не удовлетворен его ответом, я попробую более исследовать ... - person Nikunj Patel; 23.02.2012