Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
摄像头视图不显示';不能在iPhone上工作,只能在另一台上工作_Iphone_Xcode_Opengl Es_View_Camera - Fatal编程技术网

摄像头视图不显示';不能在iPhone上工作,只能在另一台上工作

摄像头视图不显示';不能在iPhone上工作,只能在另一台上工作,iphone,xcode,opengl-es,view,camera,Iphone,Xcode,Opengl Es,View,Camera,我制作了一个iPhone应用程序,主要功能是摄像头视图。它通过OpenGL处理相机图像,所以我可以修改帧。 当我测试我的应用程序时,它工作正常(我在荷兰有一个iPhone4SiOS5.1),但当我上传到appstore进行审查时,它被拒绝了。他们说摄像机的视角不起作用,他们得到的只是一个黑屏。 我真的不知道该怎么办,因为它对我很管用。我不能重现这个错误 有没有像我一样有同样问题的人?或者是知道该怎么做的人?你不会说你是否使用OpenGL ES 2.0来做这件事,但如果你这样做,他们可能会在缺乏2

我制作了一个iPhone应用程序,主要功能是摄像头视图。它通过OpenGL处理相机图像,所以我可以修改帧。 当我测试我的应用程序时,它工作正常(我在荷兰有一个iPhone4SiOS5.1),但当我上传到appstore进行审查时,它被拒绝了。他们说摄像机的视角不起作用,他们得到的只是一个黑屏。 我真的不知道该怎么办,因为它对我很管用。我不能重现这个错误


有没有像我一样有同样问题的人?或者是知道该怎么做的人?

你不会说你是否使用OpenGL ES 2.0来做这件事,但如果你这样做,他们可能会在缺乏2.0支持的iPhone 3G上测试你的应用程序。通过将
opengles-2
键添加到Info.plist中的
UIRequiredDeviceCapabilities
,可以筛选出那些不受支持的设备

第二种可能性是,您试图显示的摄像头图像超过了测试仪设备的最大OpenGL ES纹理大小,但在比iPad2旧的设备上,这个最大纹理大小是2048x2048。在iPad2、新款视网膜iPad和iPhone4S上,纹理大小为4096x4096。iPhone4可以捕捉到超过2048像素宽的图像,这也许可以解释为什么你的相机视图可以在iPhone4S上工作,但在旧的硬件上会显示黑色图像

您使用的OpenGL ES扩展在旧硬件上是不存在的,但我认为A5芯片中最近添加的任何扩展都不会对图像处理有用。我认为较新的硬件还支持更多的纹理单元、属性和变量,但我需要检查一下


这就是为什么我总是尝试在最古老的硬件上进行测试,这些硬件具有我在应用程序中所需的最低功能,因为不同的设备GPU处理事情的方式存在细微的差异。

我没有包括框架,在iphone 4s上这是不必要的,这是iphone 4上的…

首先感谢您的反应。我发现了问题,它在iPhone4上不起作用,但在iPhone4S上起作用。我得到一个错误:加载顶点着色器失败,这表明未找到该着色器。但它可以在iPhone4S上找到。知道这是什么吗?