三步从插上到出画面Android USB OTG UVC相机预览方案【免费下载链接】Android-USB-OTG-Camera项目地址: https://gitcode.com/gh_mirrors/an/Android-USB-OTG-CameraAndroidUSBCamera 是一个 Android USB OTG 相机开发库把 UVC 摄像头通过 OTG 数据线接上手机几行代码就能拿到实时预览、拍照、mp4 录像和 H.264/AAC 码流输出。它面向需要给工业检测终端、直播 App 外接摄像头的开发者你不用手写 USB 协议也不用自己处理帧格式。功能速览自动检测设备监听 USB 热插拔并自动申请权限接入流程不用你自己拼。拍照与录像一个调用存 JPG 快照或带麦克风录 mp4也能直接取 H.264/AAC 码流去做推流、二次处理。分辨率切换480P/720P/1080P 运行时切换匹配相机自身能力。参数调节亮度、对比度实时调整用 setModelValue 写、getModelValue 读当前值。第一次跑起来环境门槛不高Android Studio 工程minSdk 设 21Android 5.0一部支持 OTG 的手机加一个免驱 UVC 摄像头。工程里先在 repositories 加入 jitpack 仓库dependencies 加implementation com.github.jiangdongguo:AndroidUSBCamera:2.3.4再在 AndroidManifest 补上 WRITE_EXTERNAL_STORAGE 和 RECORD_AUDIO 两项权限。接着在布局里放一个实现 CameraViewInterface 的视图例如 TextureView在 onCreate 里初始化mUVCCameraView (CameraViewInterface) mTextureView; mUVCCameraView.setCallback(mCallback); mCameraHelper UVCCameraHelper.getInstance(); mCameraHelper.setDefaultPreviewSize(1280, 720); mCameraHelper.initUSBMonitor(this, mUVCCameraView, mDevConnectListener);剩下两个钩子onSurfaceCreated 回调里相机已打开时调用 startPreview 起预览OnMyDevConnectListener 里设备插入时 requestPermission(0) 申请权限、拔出时 closeCamera 释放。插上摄像头几秒内就能看到第一帧画面。想直接对照现成实现核心控制类 libusbcamera/src/main/java/com/jiangdg/usbcamera/UVCCameraHelper.java 封装了 USBMonitor 与预览、录像逻辑完整示例见 app/src/main/java/com/jiangdg/usbcamera/view/USBCameraActivity.java。 功能深入设备检测与连接适用场景用户插上摄像头的瞬间App 要自动接管并开始预览不靠任何手动操作。initUSBMonitor 内部用 USBMonitor 监听 USB 事件你只需实现 OnMyDevConnectListener 的 onAttachDev 与 onDettachDev 两个回调前者请求权限后者关闭相机。这张图演示 UVC 摄像头插入后自动识别并请求权限的完整流程。分辨率切换适用场景预览用 720P 保证流畅录像切 1080P 保证画质需要运行时热切换。mCameraHelper.updateResolution(width, height);切换后预览会自动重连如果连接失败先确认这台相机是否支持该分辨率。这张图演示一键切换相机输出分辨率后的预览效果。亮度对比度实时调节适用场景同一台相机在不同光照环境下需要不同的曝光表现运行时调节比重新对焦靠谱。mCameraHelper.setModelValue(UVCCameraHelper.MODE_BRIGHTNESS, 50); mCameraHelper.setModelValue(UVCCameraHelper.MODE_CONTRAST, 50);参数具体范围因设备而异可用 getModelValue 读回当前值。注意并非所有 USB 相机都实现了亮度/对比度控制项调了没效果属于硬件能力问题。这张图演示拖动亮度值后实时预览画面的即时变化。适合谁用直播/视频 App 开发者用外接高清摄像头替换前置摄像头拉高画质上限工业检测团队USB 工业相机配合产线设备做远程视觉巡检远程授课/教育场景OTG 外接相机提升网课画面质量DIY 玩家拼装便携直播设备手机当主机、USB 相机当输入源流媒体开发者直接拿 H.264/AAC 码流做转封装或推流⚠️ 避坑指南连接成功但不出画面 → 多半是帧格式问题部分 UVC 设备只支持 YUV把默认的 MJPEG 改成FRAME_FORMAT_YUYV再试。设备始终检测不到 → 先确认手机支持 OTG、数据线是否走数据模式仍不行看 SD 卡下 UsbCamera/failed-device.txt里面记录了连接失败的日志。Android 10 预览失败 → Android Q SDK 的已知 bug把 compileSdk 降到 27 以下即可。录不了 mp4 → 预览帧格式为 MJPEG 时录像可能不可用换 YUV 帧格式重试。想加时间水印 → 在 RecordParams 里开启 overlay但注意该能力只支持 armeabi-v7a 和 arm64-v8a 两种架构。AndroidUSBCamera 把 USB 连接、预览、录像整条链路收进一个助手类Android 上外接 UVC 相机的场景它是能直接落地的轮子。git clone https://gitcode.com/gh_mirrors/an/Android-USB-OTG-Camera拉下来跑 app 模块的示例用你手边的摄像头验证一遍。【免费下载链接】Android-USB-OTG-Camera项目地址: https://gitcode.com/gh_mirrors/an/Android-USB-OTG-Camera创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考