-
大小: 666KB文件类型: .zip金币: 2下载: 0 次发布日期: 2021-06-12
- 语言: Java
- 标签: Android JNI USB摄像头 /dev/video
资源简介
Android摄像头预览功能的实现,主要是通过JNI实现相关功能

代码片段和文件信息
#include “Camera.h“
#include “com_CES_usbcamera_Camera.h“
int camera_fd = -1;
int camera_base = 0;
int flag_init = 0;
int flag_preview = 0;
int Y[256] VR[256] VG[256] UG[256] UB[256];
struct Buffer *buffers = NULL;
int n_buffers = 0;
int initCamera()
{
if(flag_init)
return SUCCESS_LOCAL;
DIR *d;
struct dirent *de;
char *path = DEVICE_PATH;
char name[255];
int fd;
struct v4l2_capability cap;
d = opendir(path);
if(d == 0) {
PRINT_ERROR(“opendir failed“);
return ERROR_LOCAL;
}
while((de = readdir(d)) != 0){
if (!memcmp(de->d_name DEVICE_PREFIX_NAME 5)) {
if(de->d_name[5] == ‘\0‘ || de->d_name[5] < ‘0‘ + camera_base)
continue;
memset(name 0 sizeof(name));
strcpy(name path);
strcat(name de->d_name);
LOGI(“Get device: %s“ name);
fd = open (name O_RDWR);
if(fd < 0) {
PRINT_ERROR(“open failed“);
continue;
}
memset(&cap 0 sizeof(cap));
if (ioctl(fd VIDIOC_QUERYCAP &cap) < 0) {
PRINT_ERROR(“VIDIOC_QUERYCAP“);
close(fd);
continue;
}
if (!(cap.capabilities & V4L2_CAP_VIDEO_CAPTURE)) {
LOGE(“%s is no V4L2 device“ name);
close(fd);
continue;
}
if (!(cap.capabilities & V4L2_CAP_STREAMING)) {
LOGE(“%s does not support streaming i/o“ name);
close(fd);
continue;
}
initYUV();
camera_fd = fd;
// setCamera(V4L2_CID_BRIGHTNESS -20);
// setCamera(V4L2_CID_CONTRAST 20);
// setCamera(V4L2_CID_SATURATION 50);
flag_init = 1;
return SUCCESS_LOCAL;
}
}
closedir(d);
flag_init = 0;
return ERROR_LOCAL;
}
void deinitCamera()
{
if(!flag_init)
return;
if(flag_init)
close(camera_fd);
flag_init = 0;
}
int setCamera(int id int value)
{
// struct v4l2_cropcap cropcap;
// struct v4l2_crop crop;
struct v4l2_queryctrl qctrl;
struct v4l2_control ctrl;
/*
memset(&cropcap 0 sizeof(cropcap));
cropcap.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
if (0 == ioctl (camera_fd VIDIOC_CROPCAP &cropcap)) {
crop.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
crop.c = cropcap.defrect;
ioctl (camera_fd VIDIOC_S_CROP &crop);
LOGI(“VIDIOC_CROPCAP“);
}
*/
qctrl.id = id;
if (ioctl(camera_fd VIDIOC_QUERYCTRL &qctrl) == 0) {
ctrl.id = qctrl.id;
ctrl.value = value;
ioctl(camera_fd VIDIOC_S_CTRL &ctrl);
ctrl.id = qctrl.id;
if (ioctl(camera_fd VIDIOC_G_CTRL &ctrl) < 0) {
PRINT_ERROR(“VIDIOC_G_CTRL“);
return -1;
}
LOGI(“%-14s : id=%08x type=%d minimum=%d maximum=%d\n“
“\t\t value = %d step=%d default_value=%d\n“
qctrl.name qctrl.id qctrl.type qctrl.minimum qctrl.maximum
ctrl.value qctrl.step qctrl.default_value);
return 0;
}
return -1;
}
int startPreview()
{
if(flag_preview)
return SUCCESS_LOCAL;
struct v4l2_format fmt;
struct v4l2_fmtdesc fmtdesc;
struct v4l2_requestbuffers req;
enum v4l2_buf_type type;
int i found = 0;
memset
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2016-04-20 08:57 USBCamera\
文件 356 2013-05-17 15:11 USBCamera\.classpath
文件 1185 2013-09-18 11:31 USBCamera\.project
文件 1613 2013-11-28 14:56 USBCamera\AndroidManifest.xm
目录 0 2016-12-14 15:37 USBCamera\assets\
目录 0 2014-05-07 18:16 USBCamera\bin\
文件 218968 2013-11-28 11:39 USBCamera\bin\USBCamera.apk
文件 51394 2013-05-17 11:29 USBCamera\ic_launcher-web.png
目录 0 2016-04-20 08:57 USBCamera\jni\
文件 784 2013-07-29 17:03 USBCamera\jni\Android.mk
文件 10429 2013-09-23 11:28 USBCamera\jni\Camera.c
文件 2144 2013-09-21 10:28 USBCamera\jni\Camera.h
文件 913 2013-07-31 15:53 USBCamera\jni\com_CES_usbcamera_Camera.h
目录 0 2014-05-07 17:28 USBCamera\libs\
文件 393154 2013-05-17 11:29 USBCamera\libs\android-support-v4.jar
目录 0 2016-04-20 08:57 USBCamera\libs\armeabi\
文件 17532 2013-11-28 10:02 USBCamera\libs\armeabi\libCameraJni.so
文件 781 2013-05-17 11:29 USBCamera\proguard-project.txt
文件 563 2013-07-29 13:53 USBCamera\project.properties
目录 0 2014-05-07 17:28 USBCamera\res\
目录 0 2014-05-07 17:28 USBCamera\res\drawable-hdpi\
文件 928 2013-11-27 13:55 USBCamera\res\drawable-hdpi\battery_charge_1.png
文件 1077 2013-11-27 13:55 USBCamera\res\drawable-hdpi\battery_charge_2.png
文件 1130 2013-11-27 13:55 USBCamera\res\drawable-hdpi\battery_charge_3.png
文件 1177 2013-11-27 13:55 USBCamera\res\drawable-hdpi\battery_charge_4.png
文件 1176 2013-11-27 13:55 USBCamera\res\drawable-hdpi\battery_charge_5.png
文件 1378 2013-11-27 13:55 USBCamera\res\drawable-hdpi\battery_charge_6.png
文件 1281 2013-11-27 13:55 USBCamera\res\drawable-hdpi\battery_full.png
文件 3928 2013-11-27 18:17 USBCamera\res\drawable-hdpi\battery_low.png
文件 516 2013-11-27 13:55 USBCamera\res\drawable-hdpi\battery_unknown.png
文件 4270 2013-07-27 10:18 USBCamera\res\drawable-hdpi\ic_launcher.png
............此处省略32个文件信息
相关资源
- AndroidStudio版直连sqlserver
- android带百分比进度条的文件上传,使
- 美食天下项目Android版源码和Web版源码
- Android之自定义ToggleButton使用
- Android非常漂亮的登录界面
- pc与android通过usb socket实现手机通信
- android毕业设计
- 百度地图自定义Markerandroid
- Android分区工具包
- android-support-v4.jar已打包进去源代码
- u-blox_Android_GNSS_Driver_v3.10驱动源码+中
- 个人根据Android移动开发案例详解手写
- android 视频播放器 项目和原码
- Android【动画】【特效】 17种动画特效
- 基于Android智能家居详细设计(经典)
- android通过JDBC连接Mysql数据库
- Android通讯录的源代码
- android 瀑布流Demo
- 指纹传感器FPC1080在android下的驱动
- delphi xe5 android 调用照相机摄像头拍照
- java编写的扫描仪程序
- Android手机连连看游戏源码
- android-sdk-windows v2.3离线完整版
- android 底部弹出菜单(带透明背景)
- Android工程模式简介.rar
- Android蓝牙和Cors网络开发源码
- Android powermanger wakelock
- Android v7的一些jar包
- 最新android supportV7包
- android图片压缩工具类分享
评论
共有 条评论