我刚得到一个 Nexus 7,我正在尝试将一些代码移植到。以下行在运行 Ice Cream 的 Xoom 上没有问题:
mCamera.startPreview();
它在 Nexus 7 上也能正常工作,但会记录错误:
E/NvOmxCamera( 126): OMX_ERRORTYPE android::NvOmxCamera::getCameraStereoMode(NvxComponent*, NvOmxCameraUserStereoMode&): Error: invalid NVX mode 0.
E/NvOmxCamera( 126): OMX_ERRORTYPE android::NvOmxCamera::getCameraStereoModeAndCaptureInfo(NvxComponent*, NvOmxCameraUserStereoMode&, NVX_STEREOCAPTUREINFO&): getCameraStereoMode failed with 0x00000000
这是一个问题,因为当我执行该行时,它还会每帧记录一次这些错误
mCamera.takePicture(null, null, null, pictureCallback);
由于我每秒拍摄 10 帧,这让我很不安,所以我想修复这些错误。我已经浏览了所有来源(android sdk 和 ndk),并且上述错误的文本没有出现在任何地方。我从大量谷歌搜索中相信,这发生在 Nvidia 的 OpenMax 实现中,它似乎与参数“nv-stereo-mode”相关,该参数可能值为“left”、“right”或“stereo” (Nexus 7 只有一个摄像头,所以我不知道为什么它会关心立体摄像头模式,但无论如何)。我尝试将其设置为每个合法值,例如:
mParams = mCamera.getParameters();
mParams.set("nv-stereo-mode", "right");
mCamera.setParameters(mParams);
但是,我的日志说:
E/NvOmxCameraSettingsParser( 126): Skipping non-standard parameter: nv-stereo-mode
这似乎与源文件 nvomxcamerasettingsparser.cpp 有关,我在网络上的任何地方都找不到。我真的不知道从哪里开始,我已经搜索并搜索了我能想到的一切,所以任何帮助都会非常感激。