2010-11-22 60 views
2

我试图在开始录制视频之前尝试自动对焦相机。直接使用MediaRecorder不会自动对焦相机。为此,我使用Camera并使用回调,我可以自动对焦。但是提供这个实例给MediaRecorder给了我很多问题。下面是一个使用记录代码IMAndroid中自动对焦后视频录制问题

public boolean startRecording() 
{ 
    try 
    { 
     mCamera.unlock(); 

     mediaRecorder = new MediaRecorder(); 
     mediaRecorder.setCamera(mCamera); 

     mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC); 
     mediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA); 

     CamcorderProfile profile = CamcorderProfile 
       .get(CamcorderProfile.QUALITY_LOW); 
     mediaRecorder.setProfile(profile); 

     mediaRecorder.setMaxDuration(maxDurationInMs); 

     File file = new File(outputFile); 
     if (file.exists()) 
      file.delete(); 
     file = new File(outputFile); 

     try 
     { 
      file.createNewFile(); 
     } 
     catch (IOException e1) 
     { 
      // TODO Auto-generated catch block 
      e1.printStackTrace(); 
      Log.e("Deepak", "*** first catch ***"); 
     } 


     mediaRecorder.setOutputFile(outputFile); 
     mediaRecorder.setPreviewDisplay(mHolder.getSurface()); 

     mediaRecorder.setMaxFileSize(maxFileSizeInBytes); 

     mediaRecorder.prepare(); 
     mediaRecorder.start(); 

     return true; 
    } 
    catch (IllegalStateException e) 
    { 
     Log.e(TAG, e.getMessage()); 
     e.printStackTrace(); 
     return false; 
    } 
    catch (IOException e) 
    { 
     Log.e(TAG, e.getMessage()); 
     e.printStackTrace(); 
     return false; 
    } 
} 

摄像头属性如下:

Camera.Parameters parameters = mCamera.getParameters(); 
    List<Size> sizeList = parameters.getSupportedPreviewSizes(); 
    parameters.setPreviewFormat(ImageFormat.JPEG); 
    parameters 
      .setPreviewSize(sizeList.get(0).width, sizeList.get(0).height); 
    mCamera.setParameters(parameters); 
    mCamera.startPreview(); 

这一切是给我下面的错误信息:

11-22 16:51:25.314: DEBUG/Preview(4052): !!!!!!!!!!111Starting recording!!!!!!!!!!!!!! 
11-22 16:51:25.334: ERROR/audio_input(59): unsupported parameter: x-pvmf/media-input-node/cap-config-interface;valtype=key_specific_value 
11-22 16:51:25.334: ERROR/audio_input(59): VerifyAndSetParameter failed 
11-22 16:51:25.334: ERROR/CameraInput(59): Unsupported parameter(x-pvmf/media-input-node/cap-config-interface;valtype=key_specific_value) 
11-22 16:51:25.334: ERROR/CameraInput(59): VerifiyAndSetParameter failed on parameter #0 
11-22 16:51:25.344: DEBUG/AuthorDriver(59): setParamVideoEncodingBitrate() 256000 
11-22 16:51:25.384: INFO/MediaRecorderJNI(4052): prepare: surface=0x222968 (id=1) 
11-22 16:51:25.394: ERROR/PVOMXEncNode(59): PVMFOMXEncNode-Video_M4V::DoPrepare(): Got Component OMX.qcom.video.encoder.mpeg4 handle 
11-22 16:51:25.394: WARN/CameraInput(59): refCount 0 
11-22 16:51:25.394: ERROR/VENC_ENC(59): VENC_ERROR update_param_port_def::1643 Frame rate is for input port (refer to OMX IL spec) 
11-22 16:51:25.394: ERROR/VENC_ENC(59): VENC_ERROR get_parameter::952 unsupported index 0x700000b 
11-22 16:51:25.394: ERROR/VENC_ENC(59): VENC_ERROR set_parameter::2720 unsupported index 0x700000b 
11-22 16:51:25.394: ERROR/VENC_ENC(59): VENC_ERROR translate_profile::1015 unsupported profile 
11-22 16:51:25.394: ERROR/VENC_ENC(59): Bitrate 256000 
11-22 16:51:25.394: ERROR/VENC_ENC(59): VENC_ERROR get_parameter::952 unsupported index 0x6000005 
11-22 16:51:25.394: ERROR/VENC_ENC(59): VENC_ERROR set_parameter::2720 unsupported index 0x6000005 
11-22 16:51:25.394: ERROR/PVOMXEncNode(59): PVMFOMXEncNode-Audio_AMRNB::DoPrepare(): Got Component OMX.PV.amrencnb handle 
11-22 16:51:25.394: DEBUG/CameraInput(59): Intended mFrameWidth=176, mFrameHeight=144 
11-22 16:51:25.404: DEBUG/CameraInput(59): Actual mFrameWidth=176, mFrameHeight=144 
11-22 16:51:25.404: ERROR/VENC_ENC(59): VENC_ERROR ven_translate_config::428 Invalid mp4 configuration 
11-22 16:51:25.424: INFO/AudioHardwareQSD(59): Routing audio to Speakerphone 
11-22 16:51:25.424: DEBUG/AudioHardwareQSD(59): Switching audio device to 
11-22 16:51:25.424: DEBUG/AudioHardwareQSD(59): Speakerphone 
11-22 16:51:25.454: ERROR/CameraInput(59): Recording is not ready (iPeer 0x3bc14 iState 2 iWriteState 1 iClockState 0), frame dropped 
11-22 16:51:25.494: ERROR/CameraInput(59): Recording is not ready (iPeer 0x3bc14 iState 2 iWriteState 1 iClockState 0), frame dropped 
11-22 16:51:25.534: ERROR/CameraInput(59): Recording is not ready (iPeer 0x3bc14 iState 2 iWriteState 1 iClockState 0), frame dropped 
11-22 16:51:25.554: INFO/AudioHardwareQSD(59): AudioHardware PCM record is going to standby. 
11-22 16:51:25.554: INFO/AudioHardwareQSD(59): Routing audio to Speakerphone 
11-22 16:51:25.564: INFO/AudioHardwareQSD(59): do input routing device 800000 
11-22 16:51:25.564: INFO/AudioHardwareQSD(59): Routing audio to Speakerphone with back mic 
11-22 16:51:25.564: ERROR/CameraInput(59): Recording is not ready (iPeer 0x3bc14 iState 2 iWriteState 1 iClockState 0), frame dropped 
11-22 16:51:25.574: WARN/AudioFlinger(59): write blocked for 143 msecs, 52 delayed writes, thread 0xd7a8 
11-22 16:51:25.604: ERROR/CameraInput(59): Recording is not ready (iPeer 0x3bc14 iState 2 iWriteState 1 iClockState 0), frame dropped 
11-22 16:51:25.644: ERROR/CameraInput(59): Recording is not ready (iPeer 0x3bc14 iState 2 iWriteState 1 iClockState 0), frame dropped 
11-22 16:51:25.684: ERROR/CameraInput(59): Recording is not ready (iPeer 0x3bc14 iState 2 iWriteState 1 iClockState 0), frame dropped 
11-22 16:51:25.754: DEBUG/AudioHardwareQSD(59): Switching audio device to 
11-22 16:51:25.754: DEBUG/AudioHardwareQSD(59): Speakerphone 
11-22 16:51:25.764: ERROR/CameraInput(59): Recording is not ready (iPeer 0x3bc14 iState 2 iWriteState 1 iClockState 0), frame dropped 
11-22 16:51:25.814: ERROR/CameraInput(59): Recording is not ready (iPeer 0x3bc14 iState 2 iWriteState 1 iClockState 0), frame dropped 
11-22 16:51:25.844: ERROR/CameraInput(59): Recording is not ready (iPeer 0x3bc14 iState 2 iWriteState 1 iClockState 0), frame dropped 
11-22 16:51:25.884: ERROR/CameraInput(59): Recording is not ready (iPeer 0x3bc14 iState 2 iWriteState 1 iClockState 0), frame dropped 
11-22 16:51:25.924: ERROR/CameraInput(59): Recording is not ready (iPeer 0x3bc14 iState 2 iWriteState 1 iClockState 0), frame dropped 
11-22 16:51:25.964: ERROR/CameraInput(59): Recording is not ready (iPeer 0x3bc14 iState 2 iWriteState 1 iClockState 0), frame dropped 
11-22 16:51:26.004: ERROR/CameraInput(59): Recording is not ready (iPeer 0x3bc14 iState 2 iWriteState 1 iClockState 0), frame dropped 
11-22 16:51:26.044: ERROR/CameraInput(59): Recording is not ready (iPeer 0x3bc14 iState 2 iWriteState 1 iClockState 0), frame dropped 
11-22 16:51:28.824: INFO/AudioHardwareQSD(59): AudioHardware pcm playback is going to standby. 
11-22 16:51:31.324: DEBUG/Preview(4052): !!!!!!!!!!Stoping recording!!!!!!!!!!!!!! 

这将创建一个文件在完全模糊的指定位置,只是一束绿色的水平线。

所有权限被放置。使用Android 2.2。尝试使用的确切代码this但仍然得到了类似的VENC_ERROR

回答

12

你需要停止预览解锁相机

mCamera.stopPreview(); 

mCamera.unlock(); 
+0

由于之前!这在HTC Desire上为我工作,但不幸的是没有在三星S2上。 – darrenp 2013-02-13 14:13:40

+0

修复了我在S4上发生的关于Nexus 5 S3没有发生的绿色乱码视频问题。 – dzeikei 2014-01-17 05:21:08

+0

非常感谢!修复了Motorola Defy的视频损坏问题。 – 2014-02-19 05:53:57