我正在做一个基于 OpenCV 的应用程序,但本周我更改了开发人员的设备,我将“BQ Edison”更改为“Nexus 7”。现在,当我运行我的应用程序时,出现一条消息“您的设备似乎不支持相机(或者它被锁定)。应用程序将被关闭”为什么?
Ps:我的 Nexus 7 已经安装了 Android 4.2.2
谢谢
问题是 Nexus 7 没有后置摄像头,而 BQ 版有。如果您没有更改代码,您仍在尝试获取后置摄像头,这就是您收到错误的原因。
OpenCV FAQ 中的这篇文章可能会有所帮助。
这是一个代码片段,以防链接失效:
cv::VideoCapture capture(CV_CAP_ANDROID + 0); // "+ 0" for the back camera
cv::VideoCapture capture(CV_CAP_ANDROID + 1); // "+ 1" for the front camera for Android 2.3.3 or newer
您能否展示一些代码以帮助确定最合适的语法?
我在 Nexus 7 2013 上发现了同样的问题。使用 ADB,我发现(在 4.3 版操作系统下)相机枚举函数正在报告导致相机初始化失败的相机分辨率值。我更新到 4.4 操作系统,问题就消失了。YMMV。