2017-01-15 2 views

ответ

0

Привет, я работаю над android с opencv, и мне жаль говорить вам, что вы не можете открыть поток с opencv в cpp. Ndk android не дает API для доступа к камере, поэтому opencv не может открыть какой-либо поток. Я видел один раз API для Android 4.4, если я хорошо помню, но мне ничего не удалось открыть.

С момента создания android 7.0 у вас есть доступ к некоторой функции C, которая дает вам право сделать снимок, посмотрите этот заголовок: camera/NdkCameraManager.h.

И если вы whant начала кода

#include <camera/NdkCameraManager.h> 
#include <android/log.h> 
#define LOGI(...) ((void)__android_log_print(ANDROID_LOG_INFO, "gandoulf", __VA_ARGS__)) 
#define LOGW(...) ((void)__android_log_print(ANDROID_LOG_WARN, "gandoulf", __VA_ARGS__)) 

void AndroidCamera() 
{ 
ACameraIdList *cameraList; //list of available camera 
ACameraManager *cameraManager; // android camera manager 
camera_status_t cameraStatus; // enum for the error while using camera 


cameraManager = ACameraManager_create(); // instantiate the camera manager 
cameraStatus = ACameraManager_getCameraIdList(cameraManager, &cameraList); // get the list of available camera, return enum camera_status_t for the error 

if (cameraStatus == ACAMERA_OK) { 
    LOGI("cameraList ok\n"); 
    LOGI("num of camera = %d", cameraList->numCameras); 
} 
else 
    LOGW("ERROR with cameraList\n"); 
} 

При том, что у вас есть список камеры, и вы можете нормально сделать снимок с функцией, которую можно найти в заголовке.

Смежные вопросы