Включить аудио в MediaRecorder в Android - PullRequest
2 голосов
/ 19 июля 2011

Я встроил камеру в свое приложение для Android, чтобы записывать видео с мобильной камеры и сохранять в SDCard.он работает нормально, но сохраненный файл 3gpp не имеет прикрепленного аудио.Если я добавляю настройки для аудио, камера не открывается, виден только черный экран.Это мой код:

if(camera == null) {
      camera = Camera.open();
  camera.unlock();
}
recorder.setCamera(camera);
recorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
recorder.setVideoEncoder(MediaRecorder.VideoEncoder.MPEG_4_SP);
recorder.setOutputFile("/sdcard/adtvworld.3gpp");
recorder.setPreviewDisplay(holder.getSurface());
recorder.prepare();

Ответы [ 2 ]

1 голос
/ 08 июня 2012

Вам необходимо настроить аудиоисточник и кодировщик в правильном порядке.Исключением, которое вы получаете, является java.lang.IllegalStateException.Попробуйте следующее:

if(camera == null) {
    camera = Camera.open();
    camera.unlock();
}
recorder.setCamera(camera);
recorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
recorder.setAudioSource(MediaRecorder.AudioSource.CAMCORDER);
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
recorder.setVideoEncoder(MediaRecorder.VideoEncoder.MPEG_4_SP);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
recorder.setOutputFile("/sdcard/adtvworld.3gpp");
recorder.setPreviewDisplay(holder.getSurface());
recorder.prepare();

Этот фрагмент кода должен работать хорошо для вас.Не стесняйтесь менять AudioEncoder на что-то другое, чем AAC, хотя он наиболее эффективен для низких кбит / с.

0 голосов
/ 20 июля 2011

Попробуйте также установить источник звука. recorder.setAudioSource(MediaRecorder.AudioSource.MIC);

...