如何在iPhone模拟器中测试相机?

时间:2010-01-30 16:08:28

标签: iphone ios-simulator

有没有办法在模拟器中测试iPhone相机而无需在设备上部署?这看起来非常乏味。

7 个答案:

答案 0 :(得分:125)

您必须在设备上测试许多设备特定功能,但这并不比使用模拟器更难。只需为设备构建一个调试目标,并将其连接到计算机上。

需要实际设备的操作列表:

  • 实际的手机
  • 相机
  • 加速度计
  • 真实的GPS数据
  • 指南针
  • 振动
  • 推送通知......

答案 1 :(得分:7)

我需要为照片测试一些自定义叠加层。需要根据图像的大小/分辨率调整叠加层。

我以类似Stefan建议的方式接近这个,我决定编写一个“虚拟”相机响应。

当模拟器运行时,我执行这个虚拟代码而不是标准的“captureStillImageAsynchronouslyFromConnection”。

在这个虚拟代码中,我构建了一个必要分辨率的“黑色照片”,然后通过流水线发送它,就像普通照片一样对待。基本上提供了非常快速的相机的感觉。

CGSize sz = UIDeviceOrientationIsPortrait([[UIDevice currentDevice] orientation]) ? CGSizeMake(2448, 3264) : CGSizeMake(3264, 2448);
UIGraphicsBeginImageContextWithOptions(sz, YES, 1);
[[UIColor blackColor] setFill];
UIRectFill(CGRectMake(0, 0, sz.width, sz.height));
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

NSData *imageData = UIImageJPEGRepresentation(image, 1.0);

上面的图片相当于当前大部分设备发出的800万像素照片。显然,要测试其他分辨率,你会改变大小。

答案 2 :(得分:1)

没有(除非他们在3.2中添加了一种方法,但尚未检查)。

答案 3 :(得分:1)

我写了一个替换视图以在调试模式下使用。它实现相同的API并进行相同的委托回调。在我的情况下,我让它从我的测试集中返回一个随机图像。写得很琐碎。

答案 4 :(得分:1)

需要访问摄像头的一个常见原因是为AppStore制作屏幕截图。

由于相机在模拟器中不可用,一个好方法(我所知道的唯一一个)是以您需要的大小调整视图大小,只需要截取屏幕截图。你将在以后裁剪它们。

当然,您需要使用更大屏幕的设备。

iPad非常适合测试所有设备的布局和快照。 iPhone6 +的屏幕截图将需要拉伸一点(按1,078125缩放 - 不是什么大不了的......)

与iOS设备分辨率的良好链接快速参考:http://www.iosres.com/


编辑:在最近使用自定义摄像机视图控制器的项目中,我已经在目标中用UIImageView替换了AVPreview,我只用它在模拟器中运行。这样我就可以自动为iTunesConnect上传截屏。请注意,相机控制按钮不在叠加中,而是在相机预览的视图中。

下面的@Craig答案描述了我觉得非常聪明的另一种方法 - 它也适用于相机覆盖,与我相反。

答案 5 :(得分:1)

我从未尝试过,但是您可以尝试一下! iCimulator

 iCimulator

答案 6 :(得分:0)

刚刚在git上找到了一个回购协议,该回购协议有助于通过图像,视频或MacBook Camera在iOS Simulator上模拟相机功能。

Repo