相机视图在 iPhone 上不起作用,在另一个上起作用
Posted
技术标签:
【中文标题】相机视图在 iPhone 上不起作用,在另一个上起作用【英文标题】:Camera view doesn't work on iPhone, works on another 【发布时间】:2012-03-27 09:14:32 【问题描述】:我制作了一个以相机视图为主要功能的 iPhone 应用程序。它通过 OpenGL 处理相机图像,因此我可以修改帧。 当我测试我的应用程序时,它运行良好(我在荷兰有一部 iPhone 4s ios 5.1),但是当我将它上传到应用商店进行审查时,它被拒绝了。他们说相机视图不起作用,而且他们只是黑屏。 我真的不知道该怎么做,因为它对我来说很好。我无法重现错误。
有没有人和我一样的问题?或者知道该怎么做的人?
【问题讨论】:
【参考方案1】:您没有说您是否使用 OpenGL ES 2.0 来执行此操作,但如果您这样做了,他们可能会在 iPhone 3G 上测试您的应用程序,而 iPhone 3G 缺乏 2.0 的支持。您可以通过在 Info.plist 中将 opengles-2
键添加到 UIRequiredDeviceCapabilities
来过滤掉那些不受支持的设备。
第二种可能性是您试图从您的相机显示的图像超过了测试仪设备的最大 OpenGL ES 纹理大小。 You can check this size,但在 iPad 2 之前的设备上,此最大纹理大小为 2048x2048。在 iPad 2、新的 Retina iPad 和 iPhone 4S 上,纹理大小为 4096x4096。 iPhone 4 可以捕获超过 2048 像素宽的图像,这或许可以解释为什么您的相机视图可以在 iPhone 4S 上工作,但在旧硬件上显示黑色图像。
还有一种可能性是,您正在使用旧硬件上不存在的 OpenGL ES 扩展,但我认为 A5 芯片中最近添加的任何内容都不会对图像处理有用。我认为较新的硬件还支持更多的纹理单元、属性和变量,但我需要检查一下。
这就是为什么我总是尝试在我的应用程序中具有最低功能的最旧硬件上进行测试,因为不同设备 GPU 处理事物的方式存在细微差异。
【讨论】:
首先感谢您的反应。我发现了问题,它在 iphone 4 上不起作用,但在 iphone 4s 上起作用。我收到错误:无法加载顶点着色器,这表明未找到着色器。但它是在 iphone 4s 上找到的。知道这是什么吗?【参考方案2】:我没有包含框架,在 iphone 4s 上这不是必需的,它在 iphone 4 上...
【讨论】:
以上是关于相机视图在 iPhone 上不起作用,在另一个上起作用的主要内容,如果未能解决你的问题,请参考以下文章
UITableView 自定义单元格在 iPad Storyboard 上不起作用,但在 iPhone 上起作用
htaccess 修改在某些页面上起作用,但在其他页面上不起作用?
添加 AVPlayerLayer 作为当前视图的子层在 iPhone 5 上不起作用