【问题标题】:Include Audio in MediaRecorder in Android在 Android 的 MediaRecorder 中包含音频
【发布时间】:2011-07-19 12:16:39
【问题描述】:

我在我的 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();

【问题讨论】:

    标签: android audio camera video-capture mediarecorder


    【解决方案1】:

    您需要以正确的顺序设置音频源和编码器。您得到的异常是 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 以外的其他东西,尽管它对于低 kbps 是最有效的。

    【讨论】:

      【解决方案2】:

      也尝试设置音频源.. recorder.setAudioSource(MediaRecorder.AudioSource.MIC);

      【讨论】:

      • 当我尝试包含 AudioSource 时它打开了一个黑屏,当我开始录制时它会抛出错误消息
      • 它告诉'应用程序已意外停止。请再试一次'
      • 这并没有提供太多信息。你能提供来自 logcat 的日志消息吗?您可以使用 Eclipse 中的 DDMS 或使用命令行工具更多信息here
      • 我没有用模拟器测试这个以使用 DDMS,我在实际的 android 手机上测试它,我没有一个可以录制视频的模拟器。
      • DDMS 不仅限于与模拟器一起使用,它只是一个调试工具,也可以用来连接到您的实际设备。请通过这个link
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多