记录使用libuvccamera相关问题

库地址:https://github.com/saki4510t/UVCCamera

1.不能打开摄像机(使用ndk16版本编译)

把libuvccamera/src/main/jni/Application.mk的编译选项取消注释

#NDK_TOOLCHAIN_VERSION := 4.9

修改为

NDK_TOOLCHAIN_VERSION := 4.9

2.不能停止预览(线程一直阻塞)

把libuvccamera/src/main/jni/libuvc/include/libuvc/libuvc_internal.h定义的缓存大小修改为默认大小(5)

#define LIBUVC_NUM_TRANSFER_BUFS 10

修改为

#define LIBUVC_NUM_TRANSFER_BUFS 5

3.停止预览时程序奔溃

JNI DETECTED ERROR IN APPLICATION: jmethodID was NULL

相关修改见此JNI DETECTED ERROR IN APPLICATION: jmethodID was NULL · Issue #244 · saki4510t/UVCCamera · GitHub

即在

void UVCPreview::do_capture_callback(JNIEnv *env, uvc_frame_t *frame) 方法和
void CallbackPipeline::do_capture(JNIEnv *env) 方法在调用
iframecallback_fields.onFrame之前进行判空操作,为了避免多线程的情况,所以采用局部变量
jmethodID来临时保存调用的回调JAVA方法

猜你喜欢

转载自blog.csdn.net/savet/article/details/130820168