我正在开发一款记录视频的iPhone应用程序。我创建了一个UIImagePickerController
,将其限制为视频录制,然后以编程方式要求相机开始录制视频。不幸的是,当我运行应用程序时,控制台会显示以下内容;
"UIImagePickerController: ignoring request to start video capture; camera is not yet ready."
我该怎么处理这个问题?
我正在开发一款记录视频的iPhone应用程序。我创建了一个UIImagePickerController
,将其限制为视频录制,然后以编程方式要求相机开始录制视频。不幸的是,当我运行应用程序时,控制台会显示以下内容;
"UIImagePickerController: ignoring request to start video capture; camera is not yet ready."
没有委托回调告诉你相机何时准备好。我尝试了这个方法,但没有运气,仍然出现错误:
if ([UIImagePickerController isCameraDeviceAvailable:[picker cameraDevice]]) {
[picker takePicture];
}
else {
NSLog(@"Camera not ready");
}
我在延迟1.0、1.5、2.0秒后调用了拍照功能。我的观察结果如下:
在1.0秒时:可以拍摄照片,但完整的快门关闭过程没有在屏幕上显示; 在1.5秒时:快门关闭的过程可以看到,但非常少; 在2.0秒时:相机会加载并显示屏幕上的内容,然后再拍照。
因此,建议您使用1.75到2.25之间的时间设置。我使用的代码如下:
[picker performSelector:@selector(takePicture) withObject:nil afterDelay:2.0];
最有可能的原因似乎是您的info.plist文件中缺少所需的密钥。您需要配置UIRequiredDeviceCapabilities
。此外,您必须实现委托对象。有关详细信息,请参见http://developer.apple.com/library/ios/#documentation/AudioVideo/Conceptual/CameraAndPhotoLib_TopicsForIOS/Articles/TakingPicturesAndMovies.html#//apple_ref/doc/uid/TP40010406。
希望对您有所帮助,
Akshay