Густой медленный записанный звук с помощью Android-рекордера - PullRequest
0 голосов
/ 02 апреля 2012

Я занимаюсь разработкой приложения для Android, которое записывает звук с использованием класса Mediarecorder. Следующее является частью моего кода:

  public void start() throws IOException {
    String state = android.os.Environment.getExternalStorageState();
    if(!state.equals(android.os.Environment.MEDIA_MOUNTED))  {
        throw new IOException("SD Card is not mounted.  It is " + state + ".");
    }

    // make sure the directory we plan to store the recording in exists
    File directory = new File(path).getParentFile();
    if (!directory.exists() && !directory.mkdirs()) {
      throw new IOException("Path to file could not be created.");
    }
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
recorder.setAudioEncodingBitRate(16);
recorder.setAudioSamplingRate(44100);
try {
    recorder.setOutputFile(path);
} catch (IllegalStateException e) {
    e.printStackTrace();
}
recorder.prepare();
recorder.start();


}

, когда рекордер останавливается, я воспроизводил его с использованием класса mediaplayer, но в результате получается звукочень густой и медленный .. в чем может быть проблема?

1 Ответ

0 голосов
/ 02 апреля 2012

В соответствии с документацией MediaRecorder частота дискретизации для AMRNB составляет 8 кГц, и вы устанавливаете для нее другое значение. Я подозреваю, что это проблема.

Можете ли вы прокомментировать эти строки и проверить, работает ли это для вас:

//recorder.setAudioEncodingBitRate(16); 
//recorder.setAudioSamplingRate(44100); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...