下述代码是关于UVC camera处理的封装类,具体依赖的aar请参考https://github.com/saki4510t/UVCCamera。
借用该类,在接入UVC 摄像头设备时可以很方便的进行使用,只需要在对应的Activity中,先初始化该类,绑定一个SurfaceView,便于展示摄像视频数据,再在onStart生命周期回调中调用onStart方法、onStop生命周期回调中调用onStop方法、在onDestroy生命周期回调中调用release即可。
public class UVCCameraManager {
private static final String TAG = UVCCameraManager.class.getSimpleName();
private final USBMonitor mUSBMonitor;
private UVCCamera mUVCCamera;
private SurfaceView mUVCCameraView;
private Surface mPreviewSurface;
private final Object mSync = new Object();
private boolean isActive, isPreview;
private final HandlerThreadHandler mWorkerHandler;
private final Handler mUIHandler = new Handler(Looper.getMainLooper());
private long mWorkerThreadID;
public UVCCameraManager(@NonNull Context context, @NonNull SurfaceView surfaceView) {
mUSBMonitor = new USBMonitor(context, mConnectListener);
mWorkerHandler = HandlerThreadHandler.createHandler(TAG);
mWorkerThreadID = mWorkerHandler.getLooper().getThread().getId();
mUVCCameraView = surfaceView;
mUVCCameraView.getHolder().addCallback(mSurfaceViewCallback);
}
public void onStart() {
L.d(TAG, "onStart:");
synchronized (mSync) {
mUSBMonitor.register();
}
}
public void onStop() {
L.d(TAG, "onSt