上下文
我正在编写一个基于OpenCV的跨平台C ++共享库。消费代码是通过桥接到RN的react native native模块实现的React Native Application。
功能
基本上,它会打开设备默认的相机并拍摄快照。
结果
此代码随后在iOS和Android上运行。
Android的问题
这是Adndroid上C ++代码的失败部分:
// cap is a cv::VideoCapture object
if (cap.open(0))
{
cap.set(cv::CAP_PROP_FRAME_WIDTH, CAM_WIDTH);
cap.set(cv::CAP_PROP_FRAME_HEIGHT, CAM_HEIGHT);
}
else
{
reject("false", "cap.open(0) returned false");
}
我决定遍历OpenCV C ++源代码以了解更多信息。
基本上,对Open()的调用会检查后端特征:
const std :: vector后端= cv :: videoio_registry :: getAvailableBackends_CaptureByIndex();
这是OpenCV 3.4.1中的backends available
在定义的最后,有一个可怕的评论:
//掉落的后端:MIL,TYZX,Android
显然,我需要保证。我可以使用替代代码在Android上使用VideoCapture吗?还是应该在定义中重新引入Android后端?我将自己构建共享的本机库,以便有可能。
谢谢。