Android中自动对焦后的视频录制问题
作者:互联网
我正在尝试构建一个应用程序,尝试在开始视频录制之前自动对焦相机.直接使用MediaRecorder不会自动对焦相机.为此我使用相机并使用回调我可以自动对焦.但是将此实例提供给MediaRecorder会给我带来很多问题.以下是用于录制的代码
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属性如下:
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
解决方法:
您需要在解锁相机之前停止预览
mCamera.stopPreview();
mCamera.unlock();
标签:android,android-2-2-froyo,android-camera 来源: https://codeday.me/bug/20190715/1472031.html