WM_CAP_SET_AUDIOFORMAT =(WM_CAP_START+ 35); //设置音频格式
WM_CAP_GET_AUDIOFORMAT =(WM_CAP_START+ 36); //捕获音频格式
WM_CAP_DLG_VIDEOFORMAT =(WM_CAP_START+ 41); //1065 打开视频格式设置对话框
WM_CAP_DLG_VIDEOSOURCE =(WM_CAP_START+ 42); //1066 打开属性设置对话框,设置对比度、亮度等。
WM_CAP_DLG_VIDEODISPLAY =(WM_CAP_START+ 43); //1067 打开视频显示
WM_CAP_GET_VIDEOFORMAT =(WM_CAP_START+ 44); //1068 获得视频格式
WM_CAP_SET_VIDEOFORMAT =(WM_CAP_START+ 45); //1069 设置视频格式
WM_CAP_DLG_VIDEOCOMPRESSION =(WM_CAP_START+ 46); //1070 打开压缩设置对话框
WM_CAP_SET_PREVIEW =(WM_CAP_START+ 50); //设置预览
WM_CAP_SET_OVERLAY =(WM_CAP_START+ 51); //设置覆盖
WM_CAP_SET_PREVIEWRATE =(WM_CAP_START+ 52); //设置预览比例
WM_CAP_SET_SCALE =(WM_CAP_START+ 53); //设置刻度
WM_CAP_GET_STATUS =(WM_CAP_START+ 54); //获得状态
WM_CAP_SET_SCROLL =(WM_CAP_START+ 55); //设置卷
网上找些API帮助说明,可以设置
Android开发中经常需要获取摄像头所支持的分辨率列表,然而获取的参数列表是List形式,而且每个分辨率并不是按大小进行排列,不方便查看和返回,所以写了一个重新排列并且格式化输出的方法。
CameraParameters有三个方法获取分辨率:
理论上需要获取预览分辨率和支持分辨率两个值,用来保证设置摄像头的分辨率后不会出现一些玄学概率问题(通常是摄像头推荐的分辨率和最高分辨率的冲突),在实际开发中我用getSupportedVideoSizes()和getSupportedPreviewSizes()死活获取不到值,只能通过getSupportedPictureSizes()拉取列表,获取到的分辨率也是一致的。
需要注意的是,CPU型号也会影响分辨率的获取,同一个摄像头在不同CPU上拉取到的支持分辨率是不一样的,所以还需要对不同CPU机型的摄像头分辨率进行适配。
数据定义
获取摄像头信息,然后循环取最大的width和height,(最大值一般是List的第一个元素,可以直接get(0)),但是有些摄像头拉去到的list是乱序的,所以对他们进行重新按大小排序,方便取值。widthheight就是摄像头的像素,例如500百万像素。
重新排列分辨率列表
格式化输出成常见的宽x高格式
使用完相机之后一定要记得用 Camerarelease()来释放相机的实例,否则后续调用相机的请求(系统内其他app或本应用)都会失败,导致Cameraopen()方法报错“Failed to connect to camera service”。所以同理,出现这种问题的时候也可以排查系统中其他apps是否正在占用摄像头没有释放。
在Android 60版本的摄像头开发中,使用Cameraopen()方法时,需要在onCreate()方法中加入下面的权限申请,否则同样会报错"Failed to connect to camera service"
运行结果如下
NET为我们提供了一个方法可以很便捷的获取当前屏幕的分辨率。
首先,我们需要引用命名空间
using
SystemWindowsForms;
using
SystemDrawing;
然后通过下面简单的代码即可实现我们要的功能
public
static
Size GetScreenSize()
{
return
new
Size(ScreenPrimaryScreenBoundsWidth, ScreenPrimaryScreenBoundsHeight);
}
使用下面的步骤,可以得到屏幕的分辨率: 1、调用Toolkit类的static方法getDefaultToolkit得到一个Toolkit对象: Toolkit kit = ToolkitgetDefaultToolkit(); 2、调用Toolkit对象的getScreenSize方法把屏幕尺寸作为一个Dimension对象返回:
以上就是关于如何在用API函数capCreateCaptureWindow修改分辨率全部的内容,包括:如何在用API函数capCreateCaptureWindow修改分辨率、Android 6.0获取摄像头支持分辨率列表并格式化输出、c#中如何获取屏幕的分辨率等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)