这应该是最简洁的Android UVC Camera库了

最全Android UVC Camera 闪退问题修复

最近在做一个外接USB相机的项目,github上搜了下,有很多开源的库,这些库底层基本用的都是同一套东西,但上层业务比较繁琐,使用起来很不方便,并且也不太符合项目的业务需求,所以重新封装了一下,本库只需几个简单的API即可完成预览、拍照功能,无需关注复杂的USB插拔处理逻辑。
github地址:https://github.com/Liuguihong/AndroidUVCCamera

1.添加依赖

compile ‘com.github.Liuguihong:AndroidUVCCamera:1.0.0’

2.创建UVCCameraProxy对象
UVCCameraProxy mUVCCamera = new UVCCameraProxy(this);
3.添加配置(可选)
mUVCCamera.getConfig()
         .isDebug(true) // 是否调试
         .setPicturePath(PicturePath.APPCACHE) // 图片保存路径,保存在app缓存还是sd卡
         .setDirName("uvccamera") // 图片保存目录名称
         .setProductId(0) // 产品id,用于过滤设备,不需要可不设置
         .setVendorId(0); // 供应商id,用于过滤设备,不需要可不设置
4.设置预览View

支持TextureView和SurfaceView,在其生命周期里封装了注册/注销USB插拔广播、释放相机资源等逻辑,并且自动过滤USB设备,只响应USB相机插拔。

mUVCCamera.setPreviewTexture(mTextureView); // TextureView
// mUVCCamera.setPreviewSurface(mSurfaceView); // SurfaceView
5.设置USB监听回调,并在回调里处理相关逻辑
mUVCCamera.setConnectCallback(new ConnectCallback() {
    @Override
    public void onAttached(UsbDevice usbDevice) {
        mUVCCamera.requestPermission(usbDevice); // USB设备授权
    }

    @Override
    public void onGranted(UsbDevice usbDevice, boolean granted) {
        if (granted) {
            mUVCCamera.connectDevice(usbDevice); // 连接USB设备
        }
    }

    @Override
    public void onConnected(UsbDevice usbDevice) {
        mUVCCamera.openCamera(); // 打开相机
    }

    @Override
    public void onCameraOpened() {
        mUVCCamera.setPreviewSize(640, 480); // 设置预览尺寸
        mUVCCamera.startPreview(); // 开始预览
    }

    @Override
    public void onDetached(UsbDevice usbDevice) {
        mUVCCamera.closeCamera(); // 关闭相机
    }
});
6.设置拍照按钮点击回调(可选)
mUVCCamera.setPhotographCallback(new PhotographCallback() {
    @Override
    public void onPhotographClick() {
        mUVCCamera.takePicture();
    }
});
7.设置预览回调(可选)
mUVCCamera.setPreviewCallback(new PreviewCallback() {
    @Override
    public void onPreviewFrame(byte[] yuv) {

    }
});
8.设置拍照成功图片回调(可选)
mUVCCamera.setPictureTakenCallback(new PictureCallback() {
    @Override
    public void onPictureTaken(String path) {
    
    }
});
9.拍照
mUVCCamera.takePicture();
// mUVCCamera.takePicture("test.jpg"); // 自定义图片名称,不设置则根据UUID自动保存
10.其他API
方法说明
registerReceiver()注册USB插拔监听广播
unregisterReceiver()注销USB插拔监听广播
checkDevice()查找USB相机设备,会在onAttached里回调
requestPermission(UsbDevice usbDevice)USB设备授权,要连接USB设备必须先授权
connectDevice(UsbDevice usbDevice)连接USB设备
closeDevice()关闭USB设备
openCamera()打开相机
closeCamera()关闭相机
setPreviewSurface(SurfaceView surfaceView)设置预览View为SurfaceView
setPreviewTexture(TextureView textureView)设置预览View为TextureView
setPreviewDisplay(Surface surface)设置预览View,自定义
setPreviewRotation(float rotation)设置相机预览旋转角度,暂时只支持TextureView
setPreviewSize(int width, int height)设置预览尺寸
getPreviewSize()获取相机预览尺寸
getSupportedPreviewSizes()获取相机支持的预览尺寸
startPreview()开始预览
stopPreview()停止预览
takePicture()拍照
takePicture(String pictureName)拍照
isCameraOpen()是否已经打开相机
getConfig()获取配置信息
clearCache()删除图片缓存目录
参考

https://github.com/saki4510t/UVCCamera

  • 14
    点赞
  • 63
    收藏
    觉得还不错? 一键收藏
  • 73
    评论
Android Studio 中添加 UVCCamera 可以通过以下步骤实现: 1. 克隆 UVCCamera 到本地。可以通过以下命令在终端中实现: ``` git clone https://github.com/saki4510t/UVCCamera.git ``` 2. 在 Android Studio 中打开你的项目,并在项目面板中右键点击你的项目名称,选择 `New` -> `Module`。 3. 在弹出的 `Create New Module` 对话框中选择 `Import Gradle Project`,然后点击 `Next`。 4. 在 `Import Project` 对话框中选择你刚刚克隆到本地的 UVCCamera 所在的路径,然后点击 `Finish`。 5. 在你的项目的 `build.gradle` 文件中添加 UVCCamera 的依赖。在 `dependencies` 中添加以下代码: ``` implementation project(':uvc_camera') ``` 6. 在你的项目的 `AndroidManifest.xml` 文件中添加以下权限: ``` <uses-feature android:name="android.hardware.usb.host" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.RECORD_AUDIO" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.INTERNET" /> ``` 7. 在你的项目中使用 UVCCamera 。可以参考 UVCCamera 中的示例代码,例如 `CameraViewActivity.java`。 完成以上步骤后,你就成功地将 UVCCamera 添加到你的 Android Studio 项目中了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 73
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值