AUSBC:Android平台上的灵活UVC摄像头引擎

AUSBC:Android平台上的灵活UVC摄像头引擎

AndroidUSBCamera AndroidUSBCamera: 是一个Android平台上的USB相机引擎,支持免权限访问UVC摄像头。 项目地址: https://gitcode.com/gh_mirrors/an/AndroidUSBCamera

项目介绍

AUSBC 是一款专为Android平台设计的灵活且功能强大的UVC摄像头引擎。它允许开发者在不需要任何系统权限的情况下,轻松打开和管理UVC摄像头(支持多路摄像头)。只需确保Android设备支持OTG功能,即可开始使用。AUSBC 3.0版本经过Kotlin重构,使用更加简单,功能更加丰富。欢迎大家使用并参与项目的开发,欢迎starfork和提出issues

项目技术分析

AUSBC的核心技术基于UVC(USB Video Class)协议,支持Android 4.4及以上版本。它利用OpenGL ES 2.0进行图像渲染,支持多种分辨率的预览(如480p、720p、1080p等),并提供了丰富的功能,包括拍照、录制视频、音频捕捉、旋转摄像头视图、离屏渲染等。此外,AUSBC还支持多种CPU架构(如armeabi-v7a、arm64-v8a、x86 & x86_64),确保在不同设备上的兼容性。

项目及技术应用场景

AUSBC适用于多种应用场景,包括但不限于:

  • 智能家居:用于监控摄像头、门铃摄像头等。
  • 工业检测:用于多路摄像头同时工作,进行产品质量检测。
  • 教育培训:用于在线教育平台的摄像头管理。
  • 直播平台:用于多路摄像头直播,提供更丰富的视角。

项目特点

  1. 多路摄像头支持:AUSBC支持同时打开和管理多路摄像头,适用于需要多视角的应用场景。
  2. 无需系统权限:只需OTG支持,无需任何系统权限即可使用,简化了开发流程。
  3. 丰富的功能:支持拍照、录制视频、音频捕捉、旋转摄像头视图、离屏渲染等,满足多种需求。
  4. 灵活的配置:开发者可以根据需求自定义摄像头请求,如预览分辨率、渲染模式、音频源等。
  5. 强大的扩展性:支持添加自定义滤镜,开发者可以通过扩展AbstractEffect实现自己的滤镜效果。
  6. 多架构支持:支持多种CPU架构,确保在不同设备上的兼容性。

使用指南

引入AUSBC

首先,在项目的根目录下的build.gradlesettings.gradle中添加JitPack仓库:

allprojects {
    repositories {
        google()
        jcenter()
        maven { url "https://jitpack.io" }
    }
}

然后,在app.gradle中添加依赖:

dependencies {
    implementation 'com.github.jiangdongguo.AndroidUSBCamera:libausbc:latest_tag'
}

简单使用

只需让你的Fragment或Activity实现CameraFragmentCameraActivity,并重写相关方法即可开始使用。例如:

class DemoFragment: CameraFragment() {
    private var mViewBinding: FragmentUvcBinding? = null

    override fun getRootView(inflater: LayoutInflater, container: ViewGroup?): View? {
        if (mViewBinding == null) {
            mViewBinding = FragmentUvcBinding.inflate(inflater, container, false)
        }
        return mViewBinding?.root
    }

    override fun getCameraView(): IAspectRatio? {
        return mViewBinding?.tvCameraRender
    }

    override fun getCameraViewContainer(): ViewGroup? {
        return mViewBinding?.container
    }

    override fun onCameraState(self: ICamera, 
                               code: ICameraStateCallBack.State,
                               msg: String?) {
        when (code) {
            ICameraStateCallBack.State.OPENED -> handleCameraOpened()
            ICameraStateCallBack.State.CLOSED -> handleCameraClosed()
            ICameraStateCallBack.State.ERROR -> handleCameraError()
        }
    }
    
    override fun getGravity(): Int = Gravity.TOP
}

高级使用

如果需要自定义配置,可以在DemoFragment中重写相关方法,例如:

override fun getCameraRequest(): CameraRequest {
    return CameraRequest.Builder()
    .setPreviewWidth(1280)
    .setPreviewHeight(720)
    .setRenderMode(CameraRequest.RenderMode.OPENGL)
    .setDefaultRotateType(RotateType.ANGLE_0)
    .setAudioSource(CameraRequest.AudioSource.SOURCE_AUTO)
    .setPreviewFormat(CameraRequest.PreviewFormat.FORMAT_YUYV)
    .setAspectRatioShow(true)
    .setCaptureRawImage(false)
    .setRawPreviewData(false)
    .create()
}

多路摄像头支持

如果需要同时打开多路摄像头,可以让Fragment或Activity继承MultiCameraFragmentMultiCameraActivity,并实现相关回调方法。

结语

AUSBC作为一款功能强大且灵活的UVC摄像头引擎,为Android开发者提供了极大的便利。无论是智能家居、工业检测还是直播平台,AUSBC都能满足你的需求。欢迎大家使用并参与项目的开发,共同打造更强大的UVC摄像头解决方案。

AndroidUSBCamera AndroidUSBCamera: 是一个Android平台上的USB相机引擎,支持免权限访问UVC摄像头。 项目地址: https://gitcode.com/gh_mirrors/an/AndroidUSBCamera

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

倪澄莹George

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值