RK3399的Android系统驱动UVC摄像头

Android studio版本 : 3.5.2
Android版本 :7.1
PC操作系统 :win10系统
摄像头: USB摄像头
参考项目:https://github.com/saki4510t/UVCCamera
硬件平台:RK3399

一、导入工程

在这里插入图片描述
同步工程。如果同步时间较长就关闭工程,再打开工程。

二、工程设置

  1. NDK的版本
    在这里插入图片描述
    https://developer.android.google.cn/ndk/downloads/older_releases.html
    下载android-ndk-r16b-windows-x86_64.zip
    注意NDK的版本。
  2. Gradle 设置
    在这里插入图片描述

三、程序修改

1.android7.0以后已经不需要android:background="#ff000000" 背景设置,将其删除。修改layout的文件activity_main.xml。
在这里插入图片描述
2.如果程序可以运行,但是无法显示摄像头画面,将UVCCamera-master\UVCCamera\libuvccamera\src\main\jni\Application.mk 中的#NDK_TOOLCHAIN_VERSION := 4.9 注释打开;

3.AndroidManifest.xml文件里android:theme="@style/AppTheme"改成 android:theme="@style/Theme.AppCompat.Light.NoActionBar"
在这里插入图片描述

四、各个demo介绍

1 ) USBCameraTest0
This is most simple project that only show how to start/stop previewing using SurfaceView.
这是最简单的项目,只显示如何使用SurfaceView来启动/停止预览。
2 ) USBCameraTest
This is most simple project that only show how to start/stop previewing. This is almost same as USBCameraTest0, but use customized TextureView to show camera images instead of using SurfaceView.
这是最简单的项目,只显示如何启动/停止预览。这与USBCameraTest0几乎相同,但是使用自定义的TextureView代替SurfaceView来显示相机图像。
3 ) USBCameraTest2
This is sample project that show how to record video from UVC camera(without audio) as .MP4 file using MediaCodec encoder. This sample requires API>=18 because MediaMuxer is only supported API>=18.
这是一个示例项目,演示如何使用MediaCodec编码器将UVC相机(无音频)的视频记录为.MP4​​文件。此示例需要API> = 18,因为MediaMuxer仅支持API> = 18。

4 ) USBCameraTest3
This is sample project that show how to record video(from UVC camera) with audio(from internal mic) as .MP4 file. This also shows several ways to capture still image. This sample may most useful as base project of your customized app.
这是一个示范项目,演示如何将音频(来自内部麦克风)和视频(来自UVC相机)录制为.MP4​​文件。这也显示了几种捕捉静止图像的方式。此示例可能最适用于您的定制应用程序的基础项目。

5 ) USBCameraTest4
This sample shows the way to access UVC camera and save video images on background service. This is one of the most complex sample because this requires IPC using AIDL.
本示例显示了访问UVC相机并将视频图像保存到后台服务的方式。这是最复杂的示例之一,因为这需要使用AIDL的IPC。

6 ) USBCameraTest5
This is almost same as USBCameraTest3 but save video images using IFrameCallback interface instead of using input Surface from MediaCodec encoder.
In most case, you should not use IFrameCallback to save images because IFrameCallback is much slower than using Surface. But IFrameCallback will be useful if you want to get video frame data and process them by yourself or passing them to other external library as byte buffer.
这与USBCameraTest3几乎相同,但使用IFrameCallback接口保存视频图像,而不是使用来自MediaCodec编码器的输入Surface。
在大多数情况下,您不应使用IFrameCallback来保存图像,因为IFrameCallback比使用Surface要慢很多。但是,如果您想获取视频帧数据并自行处理它们或将它们作为字节缓冲区传递给其他外部库,则IFrameCallback将非常有用。

7 ) USBCameraTest6
This shows how to split video images to multiple Surface. You can see video images side by side view on this app. This sample also show how to use EGL to render image. If you want to show video images after adding visual effect/filter effects, this sample may help you.
这显示了如何将视频图像分割为多个Surface。你可以在这个应用程序中看到视频图像并排观看。这个例子还展示了如何使用EGL来渲染图像。如果您想在添加视觉效果/滤镜效果后显示视频图像,则此示例可能会对您有所帮助。

8 ) USBCameraTest7
This shows how to use two camera and show video images from each camera side-by side. This is still experimental and may have some issue.
这显示了如何使用两个摄像头并显示来自每个摄像头的视频图像。这仍然是实验性的,可能有一些问题。

9 ) usbCameraTest8 This shows how to set/get uvc controls. Currently this supports brightness and contrast only.
usbCameraTest8这显示了如何设置/获取uvc控件。目前这只支持亮度和对比度。

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Android Studio是谷歌最新推出的Android开发工具,可以实现基于Android平台的应用程序开发。而UVC摄像头指的是“USB视频类设备”,主要用于连接电脑、平板电脑等设备,可以实现高清视频的采集和传输。那么如何在Android Studio中调用UVC摄像头呢? 首先,我们需要在AndroidManifest.xml文件中添加相机权限,以便应用程序可以访问设备的相机。其次,需要使用Android的Camera2 API来连接UVC摄像头。Camera2 API是Android 5.0及以上版本才支持的相机API,如果您需要访问前面版本的相机,则需要使用Android的原始相机API。 在使用Camera2 API连接UVC摄像头时,可以使用CameraCharacteristics类来查询摄像头的属性,并使用CameraCaptureSession类来实现摄像头会话。此外,还可以使用MediaRecorder类来记录视频数据,并使用Surface类将视频数据渲染到屏幕上。 当然,为了更好地调用UVC摄像头,还需要了解UVC摄像头的特性和参数设置。例如,UVC摄像头通常支持多种分辨率和帧率设置,不同的设置可能会影响到视频质量和性能。因此,在使用UVC摄像头时,需要对其进行合适的配置和优化。 总之,Android Studio调用UVC摄像头需要使用Camera2 API,并需要对UVC摄像头进行适当的配置和优化。了解这些技术原理能够极大地帮助我们更好地实现Android应用程序中的相机功能。 ### 回答2: 在Android Studio中调用UVC摄像头,需要遵循以下步骤: 1.连接UVC摄像头 要使用UVC摄像头,您需要将其连接到您的计算机或Android设备。确保UVC摄像头被正确识别,并且在Android设备上设置了必要的权限。 2.创建Android Studio项目 打开Android Studio并创建一个新项目。确保您的项目中含有必要的依赖库,并设置合适的权限。 3.编写Java代码 编写Java代码以调用UVC摄像头。您可以使用android.hardware.usb包中的UsbManager类来获取该设备的USB接口。使用UsbDevice类可以将UVC摄像头与该接口连接起来。 4.设置UVC摄像头参数 为了确保UVC摄像头可以正常工作,必须设置合适的参数。您可以通过使用android.hardware.camera2包中的相关类来获取UVC摄像头所支持的参数列表。 5.初始化UVC摄像头 调用UVC摄像头的初始化方法。在此过程中,您还可以设置摄像头的预览大小、帧率和格式。 6.启动UVC摄像头 启动UVC摄像头并开始捕获图像。您可以使用android.media包中的相关类来显示UVC摄像头捕获的图像。 7.停止和释放UVC摄像头摄像头不再需要时,需要停止并释放它。调用摄像头的停止和释放方法来完成这些操作。 总的来说,调用UVC摄像头需要掌握一定的Java编程技巧和Android开发经验。但是,如果您按照上述步骤进行操作,就可以成功调用UVC摄像头并捕获图像。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值