VC++怎么控制电脑摄像头手势控制电脑

昨天Boss就和我说,有个客户要装一个网络监控,问我会不会,是海康威视的,要实现手机远程观看和电脑本地存储,我说会,之前都有做过,让我有空时在店里测试一下,这个不急!于是我把摄像机连上网络,在海康威视官网下载IVMS-4200软件,海康威视摄像机的默认IP是192.0.0.64,用户名admin,密码12345,把摄像机的IP修改和路由器同一网段,如路由器是192.168.1.1,摄像头修改为192.168.1.XXX,修改和添加设备时都有输入密码,有的还要输入用户名,密码输入正确才能修改和添加成功!然后在IE浏览器输入摄像头IP并安装插件后可以观看到画面,我就没管了!
今天一大早过来就叫我去装监控,支架、摄像头、网线、电源、电源线、线卡、路由器,工具:冲击钻、网线钳、锤子、美工刀、电胶布、螺丝刀等,安装还算顺利,就是软件配置这些才是麻烦,虽然我以前也是有做过,不过也仅仅是安装过海康威视的摄像头,软件设置一般都是老板在搞(苦力活当然我们做,设置软件这些就是老板趁着我们在做事时边配置软件),之前也确实有独立完成安装的,那也是硬盘录像机加摄像头的,而不是电脑加摄像头!IVMS-4200软件下载下来后,安装时有3个选项:客户端、存储服务器、流媒体服务器,客户端和存储服务器是必选的,安装好后就是设置全天自动录像并本地存储和手机远程观看,存储服务器打不开,NvrStorageSever.exe - 应用程序错误,应用程序无法正常启动,(0xc0150002)。 请单击&确定&关闭应用程序,打电话给海康400说叫我卸载后重装(这肯定试过,还重启过),她说要么就是缺少个VC++的插件,要在微软官网去下载,我说多大的,她说我也不太清除,大概是10来MB,百度搜索后,我觉得只有以下几种可能:系统问题、杀软、缺少组件,搜索&应用程序无法正常启动 (0xc0150002)&后,原来真的是缺少C++运行库,下载后又C++运行库又安装不了,提示错误无法安装,只能寻求最后一个办法重装Win7-64位系统,
重装系统,运行存储服务器,打开客户端,添加设备,添加存储服务器,远程配置-存储-常用-勾选要用于保存录像的分区-格式化(这里的格式化并不会影响用户的硬盘数据,应该是用于标记此分区可以存储录像文件)-保存-设置存储计划为全天模板,系统配置修改配置文件等数据保存在非C盘。在监控的主预览画面里右键-监控点-录像状态为不录像,而且在监控的主预览画面的右下角中间有个开始录像的图标按钮,我以为还没设置好自动录像,于是我打电话给海康400,客服说,只有你安装了存储服务器,硬盘格式化后显示正常,设置存储计划,这些设置好了就有在录像了,设置好后过几分钟就可以在远程回放里看到保存的录像并回放,至于那个监控点状态和右正解的开始录像那个和录像无关,那个是监控摄像头自身可以插TF卡,那个状态是摄像头里的状态,开始录像也是摄像头自身的开始录像!
不用勾选DDNS,海康自带有域名解析的,直接输入序列号或扫码就可以了,路由器也不用设置端口映射、UPNP这些!
既然要用于保存的录像的分区是勾选并点击格式化,那我又不想之前设置的某个分区再用于保存录像了,那怎么办呢?软件里没有看到取消格式化的选项,客服说每一个格式化过后的分区的根目录里都有一个什么PC&&&&什么什么的目录(我忘了,反正是好长的,只要格式化了的盘都有,点进去里面有以日期分类的录像文件),不想用于保存录像的分区只要把该目录删除就(重命名应该也可以的)不会显示分区正常,录像就不会保存到该分区了!
阅读(...) 评论()(window.slotbydup = window.slotbydup || []).push({
id: '1102523',
container: s,
size: '180,30',
display: 'inlay-fix'
VC++ 6.0 摄像头控制程序
VC++ 6.0 摄像头控制程序
VC++ 6.0编写的一套摄像头控制程序,可以控制拍摄照片,程序基于directshow类库,已将此类库打包,另外编译需要将包内的directshowLib.rar解压,然后放入程序提示的文件夹内,这一步很关键哦,否则编译不能通过,另外如果你的电脑上没有安装摄像头的话,程序也会报错,作者没有加入异常判断所致
免责声明:以上收费源码由会员自行提供,内容的合法性由发布会员负责。若您发现您的权利被侵害,请发起知识产权投诉。投诉邮箱:Visual C++(7)
C&C++(27)
音频视频技术(2)
一篇不错的文章,拿来做笔记
原文:&http://blog.csdn.net/suntaoznz/article/details/447067
这段时间闲来无事,看了看的文档,自己翻译了一下。一是为了学习,二是对空闲时间的打发。所以也希望大家在拍砖的同时,尊重我的劳动,如要转贴请注明转至。谢谢!
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&孙涛&
你可以使用的类轻松地完成视频捕获。提供给应用程序一个简单的、基于消息的接口去访问视频设备和录音设备,并且可以控制处理视频流捕获。
支持实是视频流捕获和实时单帧图像捕获。另外,提供了对视频源的控制(媒体控制接口设备),因此使用者可以通过应用程序控制一个视频源开始和结束的位置,并且可以加大对帧捕获的控制。
你使用类可以完成如下的任务
l&&&&&&&&&捕获声音和视频,并将他们写入到一个文件中。
l&&&&&&&&&动态连接和断开视频和音频的输入设备。
l&&&&&&&&&使用覆盖或预览的方法去显示当前的视频信号。
l&&&&&&&&&指定一个文件用于捕获,并且把这个捕获文件的内容拷贝给另一个文件。
l&&&&&&&&&设定捕获图像速度(好多帧)。
l&&&&&&&&&显示对话框用于控制视频源和格式。
l&&&&&&&&&创建、保存、加载调色板。
l&&&&&&&&&拷贝图像和调色板到剪贴板中。
l&&&&&&&&&捕获并把图像作为一个位图保存。
视频捕获将数字化一个视频流和音频数据,并且将他们保存在硬盘和其他存储设备上。
这里将描述如何在应用程序中简单地应用视频捕获,它通过三句代码实现。它还介绍了如何通过发送消息给视频捕获窗口来结束或中断一个视频会话。
捕获窗口可以把捕获的音视频信息写入一个文件中。你的应用程序可以自由地处理这个文件、管理缓存区的音视频数据、还可以在底层访问音视频设备的驱动器。为应用程序提供了一个灵活的接口。你可以使用下面的代码,在你的应用程序中加入视频捕获:
/* wIndex */,&&0L);
宏接口同样有用,你可以选择是使用宏接口还是函数来实现上面的功能,不过宏接口可以让你的代码更加容易理解。下面就使用了宏接口。
你的应用程序创建捕获窗口,并和视频设备建立连接后。你创建的这个捕获窗口就准备捕获数据了。这时,你可以通过发送消息(或&宏)开始对数据进行捕获。
将使用默认设置,开始对视频和音频进行捕获,并把数据放在一个的文件中,捕获动作将一直持续,除非有下面的事件发生:
l&&&&&&&&&用户按了键或者鼠标的按钮。
l&&&&&&&&&你的应用程序停止或者退出了捕获操作。
l&&&&&&&&&磁盘写满了。
在应用程序中,你可以通过发送命令或)给捕获窗口,让它停止向文件写数据。你还可以通过发送命令或)给捕获窗口,让它中断捕获操作。
通过对定义在结构中的捕获参数进行修改,你可以完成:
l&&&&&&&&&改变捕获的帧频律(帧秒);
l&&&&&&&&&指定用键盘或鼠标去结束一个捕获会话;
l&&&&&&&&&为一个捕获会话指定时间周期;
捕获的帧频率
捕获的帧频率表示在一个捕获会话中,每秒要捕获多少帧。你通过&消息(宏)可以得到当前捕获的帧频率。当前的帧频率被保存在结构的成员中。你可以对该值进行修改,从而去改变帧频率。该值为捕获一帧要用的时间单位是微秒秒,修改后,你可以发送消息(或宏)给你的捕获窗体,来刷新结构。默认值是微秒表示每秒帧。()
退出数据捕获
你可以让用户按这几种方法退出一个捕获会话,按键盘上的一个键或几个组合键、或者按鼠标的左键或者是右键。如果用户退出一个实时的捕获会话,那么捕获文件中的内容将被系统丢弃掉。如果用户退出一个步帧捕获的会话,捕获文件将保存到退出时刻前的所有数据。
你可以通过发消息或宏给捕获窗口,来获得捕获退出的设置信息。当前的退出按钮设置保存在结构的成员中,当前的退出鼠标设置保存在和成员中。你可以改变这几个成员,实现对当前值的修改。当你修改完成后,你可以发送消息(或宏)给你的捕获窗体,来刷新结构。
默认值是。在重新指定其他按键前,你必须调用函数。和是。
通过使用结构的和成员,你可以去限定一个捕获操作的时间周期。表示是否要对捕获操作限定时间,用于指定限定时间的最大值。
你发消息宏给捕获窗口,就可以得到和的值。为表示要指定时间周期。单位为秒。修改完成后,你可以发送消息(或宏)给你的捕获窗体,来刷新结构。
默认值为
捕获窗体类似于一个标准控件(不如按钮、列表框),它一般使用和窗口类型。
创建一个捕获窗口
使用函数可以创建一个的捕获窗口。这个函数返回一个窗口句柄,这个句柄就是捕获窗口的句柄,后面其他操作就是通过发送消息给该句柄来实现。你可以在一个程序中创建多个捕获窗口,并且每个窗口连接到不同的捕获设备上。
建立捕获窗口到捕获设备的连接
你可以动态地连接或断开捕获窗口与设备间的链接。通过使用消息(或宏),可以实现捕获窗体与设备驱动间的连接。当捕获窗体和捕获设备驱动连接后,你就可以发送针对设备的消息给该窗体了。
如果你的系统安装了多个捕获设备,你可以通过在发送消息时,设置参数()。来指定捕获窗口与那个具体的视频捕获设备相连接。
参数是一个整数,它表示一个系统已经安装的视频捕获设备列表的索引(注册表中或这中的信息)。该列表的索引从开始。
通过函数可以获得安装的捕获驱动程序的名称和版本。你的应用程序可以使用这个函数列举除安装的所有捕获设备,让用户可以选择其中一个去与捕获窗口相联。
通过发送消息(宏),可以获得与指定窗体连接的捕获设备的名称。通过发送消息(宏),可以获得与指定窗体连接的捕获设备的版本。
通过发送消息(宏),可以断开连接。当捕获窗体销毁后,任何连接的视频捕获设备都将自动断开。
父子窗体交付
一些系统级的消息,比如、,只被发送到顶层和窗口。如果一个捕获窗体是一个资窗体,那它的父窗口应该来转寄这些消息。
同样地,假如父窗口尺寸改变了,它可能需要发送一个通知消息给捕获窗口。相反,如果捕获视频尺寸变化了,捕获窗口可能需要发一个通知消息给父窗口。最简单的管理方法是让捕获窗口的尺寸等于捕获视频流的尺寸,随时把改变的尺寸告诉给父窗口。
捕获窗体状态
通过发送消息(宏),可以获得当前捕获窗口的状态。这个消息得到一个结构体的拷贝,状态信息就在这个结构体的成员中。
结构体包含了图形尺寸大小、滚动位置()、是否覆盖或者预览()等信息。因为在中的信息是动态的,你的应用程序应该随时去刷新这个结构体中的内容。
改变捕获窗口的尺寸对实际的视频流的尺寸没有影响。
视频捕获可以做这几个方面的工作:访问视频源、显示选项、格式和压缩选项。音频捕获包括指定音频格式和选择压缩方式。
捕获驱动性能
通过发送消息(宏),可以获得当前连接的捕获设备的性能。发送该消息后,会返回一个结构的对象。设备的性能信息,就在这个对象中。
视频对话框()
每个捕获设备的驱动程序都可以为控制视频信号和捕获处理和视频压缩提供个对话框。这些对话框中的内容都是视频捕获驱动程序定义的。
视频源对话框用于选择视频输入通道和视频图像的动态参数。它可以列举出当前连接视频设备的信号类型(和复合类型),并且可以通过该对话框去修改图像的色调、亮度、饱和度。你可以通过使用&消息或宏来显示和刷新这个窗口。
视频格式对话框()用于选择数字视频的框架大小和视频图像的色深,以及捕获视频图像的压缩格式。你可以通过使用消息或宏来显示和刷新这个窗口。
视频显示对话框用于控制视频外观。在该对话框上进行了修改只是对视频显示起作用,对于实际的视频数据是不会造成改变的。比如,可以改变显示的颜色,饱和度等等。你可以通过使用消息或宏来显示和刷新这个窗口。
视频压缩对话框用于设置视频压缩的格式。通过使用消息或宏来显示和刷新这个窗口。
预览和覆盖模式
一般,一个捕获驱动提供两种方式来观看输入的视频流:预览模式和覆盖模式。如果捕获驱动可以提供上面两种模式,那么用户就可以选择其中的模式来使用。
预览模式从捕获设备硬件传输数据帧到系统的内存中,并且在捕获窗口中使用函数来显示这些数据帧。当捕获窗口的父窗体失去焦点的时候,在应用程序的视频预览的数据将变慢,如果父窗体获的焦点后,将对预览显示进行加速。因为预览处理的这种处理方式将大大提高整个系统的效率。
这里用个消息用于控制预览操作。
l&&&&&&&&&消息(宏)可以打开或者关闭预览模式。
l&&&&&&&&&&消息宏可以设置预览模式下图像的帧速度。
l&&&&&&&&&&消息宏打开或者关闭预览视频的缩放比例。
当预览和缩放比例属性都打开后,那么视频将被缩放到和捕获窗口尺寸一样大。打开预览模式后,系统将自动关闭覆盖模式。
覆盖模式,将不占用的处理资源,直接在显示器上显示视频内容。所用的处理是有捕获设备硬件来完成。发送消息或宏给捕获窗口,可以打开覆盖模式。打开覆盖模式后,将自动关闭预览格式。
无论是预览模式还是覆盖模式,都可以通过发送消息(宏),可以设置图像的在整个视频帧的滚动位置()。
视频格式
通过发送消息宏给视频捕获窗口可以得到一个结构,在这个结构体中就包含了视频的格式、大小。
通过发送消息宏给视频捕获窗口可以对视频格式进行修改设置。
视频捕获设置
数据结构包括了视频流的控制参数。它允许完成如下的任务:
l&&&&&&&&&指定帧速度。
l&&&&&&&&&指定为视频分配的缓存大小。
l&&&&&&&&&关闭或者打开音频捕获。
l&&&&&&&&&设定捕获的时间间隔。
l&&&&&&&&&指定捕获设备(设备、或者影碟)。
l&&&&&&&&&指定键盘或鼠标去控制结束捕获。
l&&&&&&&&&指定适用的视频类型
通过发送消息给捕获窗体,可以获得一个数据结构的对象,当前视频捕获的设置信息就在这里面。
你可以改写对象的成员,来实现对视频捕获信息的修改。修改后,发送消息给捕获窗体,并把这个对象发给捕获窗体,就可以实现修改。
音频格式
通过发送消息和宏给捕获窗体,你就可以获得当前的音频数据格式或音频数据结构的大小。默认音频捕获格式是。
当你使用消息得到音频格式后,通常会使用这个数据结构。
通过发送消息宏给捕获窗体,你可以设置音频数据捕获格式。当设置这个音频格式时,你可以通过一个指针指向一个或者数据结构。
3.1.5捕获文件和缓存区
捕获文件名
默认,把音视频数据从捕获窗口保存到当前驱动得根目录下,文件名称为。发送消息()给捕获窗体,可以改变保存的文件名。这个消息指定文件名;它不实际创建文件,分配空间,也不能打开文件。通过发送消息宏给捕获窗口,就可以得到当前文件名。
保存捕获数据到一个新文件
如果用户想保存捕获数据,把数据存到另外一个文件中。可以使用消息宏。这个消息不能改变捕获文件的名称和内容。你必须去指定新建的文件名,因为捕获文件将保留原来的文件名称。
为捕获文件预分配磁盘空间
在捕获操作前,先在磁盘上为捕获文件建一个指定大小的文件。预分配空间将减少数据保存时的处理时间。可以通过消息宏来预分配一个捕获文件。
你要预分配足够大的磁盘空间去保存预计最大的捕获文件。预分配磁盘空间没有限定捕获文件的大小。如果捕获的数据大于了分配的空间,文件尺寸将自动变大。对一个捕获文件进行重写数据,将对文件的已经分配的磁盘空间进行重写。
通过对捕获文件进行磁盘碎片整理可以提高捕获性能。要对文件进行碎片整理,可以使用一个碎片整理工具来完成,比如。
通过使用没压缩的磁盘来保存数据,同样可以提高性能。因为在捕获期间压缩数据将对磁盘的吞吐量进行限制。
在每个文件中都会使用一个指定大小的索引去查找音视频数据块。在一个索引的入口定位了一个视频帧或者一个波形声音的缓存器。所以,这个索引的大小简接地限定了一个捕获文件所能保存的帧的数量上限。
通过发送消息宏给捕获窗口就可以得到当前的索引大小。这个索引大小就保存在数据结构对象的一个成员中()。你可以在中指定一个新的索引大小,并通过发送消息(capCaptureSetSetup宏给捕获窗口完成信息设置。索引默认大小允许帧和想匹配的声音缓存器
音视频块的间隔尺寸
数据块的间隔尺寸是一个文件的逻辑块大小。它用于写和读音视频数据块。当向磁盘写音视频数据时,将在每个数据块中加入一个必须的填充块()去填充满该数据块。
你可以使用消息()去获得当前的块间隔尺寸()。的成员保存的是当前的块间隔尺寸信息。通过对该成员的改写,并发送消息(),可以对其进行修改。你设置该参数为零的话,那么块间隔尺寸的值就为磁盘的扇区大小。
视频缓存区
这个缓存区将视频数据放在内存的堆中。缓存区的大小可以改变,并且它的大小是由的成员和系统可以的内存大小来决定。
你可以使用消息()去获得当前的视频缓存区的大小。的成员保存的是当前的缓存区尺寸。通过对该成员的改写,并发送消息(),可以对其进行修改。
音频缓存区
你可以使用下面三种方法来控制捕获的音频数据:
l&&&&&&&&&在捕获中包含音频或者不包含音频
l&&&&&&&&&按要求指定音频缓存区的大小
l&&&&&&&&&
你可以使用消息()去获得当前的音频缓存区的设置。的指定在这次捕获操作中是否包括对声音的捕获。保存当前要求的音频缓存区的大小。保存当前的音频缓存区的大小。
通过对该成员的改写,并发送消息(),可以对其进行修改。
默认值是。
3.1.6捕获变化
除了对基于持续时间间隔的流捕获外,还支持如下的捕获:
l&&&&&&&&&手控制帧捕获
l&&&&&&&&&捕获
l&&&&&&&&&不使用磁盘存储的捕获
l&&&&&&&&&从一个设备的流捕获
手动帧捕获
如果你向指定捕获视频流中个别帧,你可以通过消息、消息、消息来控制帧序列(、、)。
典型应用是,这些消息用于向捕获文件添加单独的帧来创建一个动画,&WM_CAP_SINGLE_FRAME_OPEN&为手动捕获操作打开一个文件,WM_CAP_SINGLE_FRAME用于捕获一个单独的帧放在文件中。
WM_CAP_SINGLE_FRMAE_CLOSE用于关闭这个捕获文件。
注:该操作支持音视频同时捕获。
如果要捕获一个单独的帧作为一个静态图像,你可以使用或者&消息
或宏在一个帧缓存区中捕获一个图像。你可以通过使用下面的消息来抓获当前显示的图形,否则,使用。
一旦开始捕获,你可以拷贝图像给其他应用程序。你可以从帧缓存区拷贝一个图像到剪贴板(使用&消息或宏)。你还可以使用如下的消息,将缓存区的一张图像拷贝到一个位图中消息或宏。
不使用磁盘存储的捕获
使用消息(宏),可以不向磁盘文件写入数据。该消息仅在配合回调函数时有用,它允许你的应用程序直接使用音视频数据。例如,在视频会议中,应用程序使用该消息区获得视频流。回调函数将传输捕获的图像传送给远程的计算机。
从设备进行流捕获
设备加强了实时捕获和步进帧捕获的处理操作。你可以指定一个设备,比如一张影碟或者一盘录像带()来充当视频源。通过发送消息并指定你要选定的设备的名称。消息(capSetMCIDeviceName宏。获得当前使用的设备可以使用()消息。
在实时捕获中,
控制设备的规格信息保存在数据结构体的数据成员中。兼容的视频源包括录像机()和光碟。如果数据成员为捕获窗口采用操作。捕获窗口使用和来获得开始和结束位置(毫秒)。如果数据成员的值为和的值将被忽略不见。
你可以使用去快速检查设备是否正确地连接到了你的系统上,如果在视频显示显示了图像,就表示这个视频源正确连接到了捕获硬件上。
在步进帧捕获情况下,
步进帧捕获控制的规格信息保存在数据结构体的数据成员中。步进帧捕获除了使用视频捕获要用的数据成员外,还使用其他的数据成员:和。如果数据成员的值为,捕获窗口采用步进帧捕获。捕获窗口将使用这两个参数来指定捕获的开始和结束位置(和毫秒)。捕获窗口使用来决定捕获硬件捕获的视频帧使用两个普通的分辨率。使用来指定捕获时每帧图像使用的时间大小。
如果在一个步进帧捕获中,指定为那么捕获硬件将使用两个指定的解析度来进行捕获高和宽的解析度都是双倍的。它使用软件,在指定的解析度的基础上改写图像的象素,让其成为更高解析度的图像。如果硬件不支持基于硬件的批量处理,你也可以使用该选项。并且捕获为格式。
注意:如果你的硬件步支持基于硬件的批量处理。
如果指定了步进帧捕获,成员用于指定捕获一帧图像要使用的时间它是一个采样的标准时间。以后捕获图像捕获平均时间都会基于这个时间。采用这种机制,降会减少在一个图像帧的随机数字化噪音。这个数据成员的标准值是。
关于的信息可以查看上的信息。
高级捕获选项
这节描述在一个捕获操作中,你还可以进行的其他选择。
l&&&&&&&&&测量视频质量
l&&&&&&&&&用户初始化捕获
l&&&&&&&&&和调色板一起工作
l&&&&&&&&&在文件中的嵌入信息块
l&&&&&&&&&用户数据消息()
测量视频质量
测量视频质量的一个方法是去限定在一个捕获操作期间丢掉的捕获图像帧的数字。当流捕获完成后,质量丢掉的帧所有的帧。如果这个数百分数大于的值,将发一个错误信息给错误回调函数。是数据结构体的一个数据成员。
通过消息(宏)可以得到当前设定的丢掉帧的限定值。同样对进行修改,再把修改后的数据结构体发送给捕获窗体就可以完成对限定值的修改。消息()默认值%。
用户初始化捕获
通过消息(宏)可以得到当前用户初始化捕获的状态值。该值存放在中。在开始一个捕获会话前,设置该值为,可以为用户提供精确的控制。系统为所有的音视频分配好数据缓存区后,会显示一个对话框。它让用户清除因为软件初始化导致的捕获延迟。如果你的应用程序为视频数据分配的数据缓存区很小,那么这个对话框可能就没的必要了。该值的默认值是。
和调色板一起工作
最初,如果视频捕获格式需要一个调色板,那么捕获窗口将使用捕获驱动提供的调色板来代替。这个调色板可能由灰度值,或者可选的彩色值组成。使用或者消息(或)可以获得一个现存的调色板去替换默认的调色板。你还可以创建一个自定义的调色板去替换默认的调色板,你要使用&或者消息或。当你替换了调色板后,捕获窗体和驱动程序将使用替换后的调色板,直到你创建或打开其他的调色板为止。
或者消息将创建一个基于当前视频输入最优化的调色板。这个自定义的调色板将为视频提供一个最好的颜色逼真度,因为这个调色板的颜色是基于这个视频的。捕获窗口创建一个采样颜色的维柱状图。它会减小真实颜色和渐近色间的值。
在发送消息时你必须指定采样的帧数以及调色板的颜色尺寸。在指定帧数时,要保证帧数足够大以保证所有的视频颜色可以被采样收集到。
使用消息可以对当前帧进行采样。通过该消息,进行几次手动选择帧采样操作,你可以创建自己的调色板,它包含了你想要的颜色信息。
一个调色板可以包含种颜色。如果你要合并调色板,或者在视频队列中同时在显示其他视频或图像。你可以去使用一个小的颜色集合,这样不同图像或视频的颜色就可以共存了。
使用消息(),可以保促一个新的调色板。通过消息还可以得到当前的调色板。你可以在调色板处理前保存一个调色板,或者为其他应用程序使用去保存一个调色板。
使用可以把剪贴板中的调色板粘贴到捕获窗口中。捕获窗口通过这个调色板到捕获驱动。其他程序可以拷贝调色板到剪贴板中。你也可以把调色板粘贴到剪贴板中。使用消息。它将拷贝视频缓存区(包括调色板)到剪贴区。
在文件中的嵌入信息块
你可以在一个文件中插入信息块,比如文本或者自定义的数据。通过使用下面的消息:(capFileSetInfoChunk)。可以使用这个消息还可以清除掉一个文件中的信息块。
用户数据消息
通过使用和消息可以关联数据到一个捕获窗体。和宏。使用消息可以得到一个数据值,可以通过消息去设置该值。
你的应用程序可以为一个捕获窗口注册一些回调函数,它们可以告诉你的应用程序一些变化。比如捕获状态发生变化了,或者有错误发生了,音视频缓存区可使用了。下面的消息设置回调函数。
在应用程序中指定回调函数用于控制捕获的开始和结束。
在应用程序中指定回调函数,当出错的时候就调用它。
在应用程序中指定回调函数,当预览图像帧被捕获了的时候就调用它。
在应用程序中指定回调函数,当状态()改变的时候就调用它。
在应用程序中指定回调函数,在流捕获期间,当一个新的视频缓存区可用的时候就调用它。
在应用程序中指定回调函数,在流捕获期间,当一个新的音频缓存区可用的时候就调用它。
在应用程序中指定回调函数,在流捕获期间(产生)
精确捕获控制
捕获窗口可以提供捕获回调函数,这个回调函数可以对流捕获的开始和结束时刻进行精确的控制。在捕获驱动程序()完成所有缓存区分配和其他捕获准备后,捕获驱动程序就发送第一个消息给回调处理程序,把参数设置为:
这个消息告诉应用程序将要开启视频源了。(这个回调函数指定为它的第二个参数)回调函数将在开始时刻产生返回值。返回值为那么将继续捕获。为就中断捕获。一旦捕获开始,这个回调函数将频繁的调用,把设置为:
将允许应用程序通过返回去结束捕获。
捕获窗口使用错误通知消息去告诉你的应用程序,发生了错误,比如磁盘空间已经用完了,尝试对一个只读文件进行写操作,不能访问硬件,掉帧太多。错误通知内容报价一个消息和一个格式化的文本字符(用来显示)。你的应用程序可以通过使用这个消息去过滤错误通报,还可以让该错误信息不显示给用户。消息为表示一个新操作正在开始并且这个回调函数会清除掉所有的显示的错误信息。
状态回调函数
当视频捕获向磁盘写数据,或者在其他较长的操作期间,捕获窗口可以发送消息给状态回调函数通知你正在处理该操作的应用程序。状态信息包括一个消息和和一个格式化的文本字符(用来显示)。你的应用程序可以通过使用消息去过滤通报,还可以限制该信息是否显示给用户。在捕获操作期间,发给回调函数的第一个消息总是,最后一个总是。消息为表示,一个新操作正在进行并且回调函数将清除当前状态。
在流捕获期间,应用程序可以使用视频流回调函数去处理一个捕获的视频帧。视频窗体只能在每次向磁盘写数据帧前,调用视频流回调函数。
在流捕获期间,应用程序可以使用音频流回调函数去处理音频缓存区。视频窗体只能在每次向磁盘写数据帧前,调用音频流回调函数。
应用程序在流捕获期间可以使用回调函数。(回调函数一般是由一个消息循环组成,可以调用)。捕获窗口在每次捕获视频帧时至少调用一次回调函数。但是具体要调用多少次由帧率来决定。
关闭回调函数
你可以暂时或永久关闭所有的回调函数的功能,在发送消息设置回调函数的时候,用替换调回调函数就可以了。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:93517次
积分:1056
积分:1056
排名:千里之外
原创:16篇
转载:56篇
(3)(1)(2)(2)(1)(2)(1)(4)(1)(2)(1)(2)(1)(1)(1)(1)(3)(4)(2)(2)(2)(1)(1)(1)(5)(1)(1)(1)(9)(5)(1)(1)(1)(5)

我要回帖

更多关于 摄像头手势控制电脑 的文章

 

随机推荐