TVideoGrabber中如何设置视频捕捉设备
操作方法
- 01
选择一个视频捕捉设备 首先设置 VideoSource = vs_VideoCaptureDevice来选择一个视频捕捉设备作为一个视频源。 通过指定VideoDevice属性来选择当前的视频捕捉设备,VideoDevice属性是在VideoDevices属性中的一个索引,而VideoDevices属性包含了VideoDevicesCount项目。 也可以用编程的方式通过它的名字,主要是因为它的名字会出现在VideoDevices列表中,选择视频捕捉设备,比如: VideoGrabber.VideoDevice = VideoGrabber.VideoDeviceIndex ("Microsoft DV Camera and VCR - Sony DV VCR Camcorder DV") 当前视频捕捉设备的名字可以通过VideoDeviceName报告,当选择了一个视频捕捉设备,它设备相关的属相将会从注册表重新加载,同时OnVideoDeviceSelected事件也会发生。 注意:当组件处于非活动状态时,通过调用 ResetVideoDeviceSettings,这个注册表设置可以重置为其默认值。这个使用到的机会很少,但是如果当前设置显示一个黑色的视频时,就会非常的有用了。 确定几个具有相同品牌和型号的视频捕捉设备 当使用几个具有相同品牌和型号的视频捕捉设备时,但是这些在VideoDevices列表中无法区分时,就可以使用VideoDevicesId列表代替VideoDevices列表属性。 比如: 1 VideoGrabber.VideoDevice = VideoGrabber.FindIndexInListByName (VideoGrabber.VideoDevicesId,"devicepnpavcjvcgr-dvl357egcamcorderdvb301b0000588800065e8773d-8f56-11d0-a3b9-00a0c9223196globalMicrosoft DV Camera and VCR",false,true); 连接/断开视频捕捉设备 当连接/断开视频捕捉设备时,OnDeviceArrivalOrRemoval事件就会发生。这个时间将会报告VideoDevices列表中的视频捕获设备的名称和索引。 在视频捕获设备断开后,IsVideoDeviceConnected就会返回一个true,知道设备被重新的连接上。 如果相关设备用于预览或是记录,当设备断开连接的时候,OnDeviceLost事件就会发生,也就会停止预览或是记录。 当一个视频捕获设备已断开连接,它不会从VideoDevices列表被删除,以防止管理视频捕捉设备的转移索引的复杂性,并且这个视频捕捉器的索引在当前移除设备的索引以上。 当tvideograbber运行时,遵循以下规则: 当一个设备被接通时,设备被添加在底部的VideoDevices列表,OnDeviceArrivalOrRemoval就会发生。它的IsDeviceArrival参数报告“true”,并且其DeviceIndex参数报告添加到列表中的视频移动设备的索引。 当设备处于关闭状态,该设备仍然在VideoDevices列表,OnDeviceArrivalOrRemoval事件会发生。它的IsDeviceArriva参数会报告“false”,并且它的DeviceIndex参数会报告关闭设备的索引。 如果像上面的第二种情况,设备又被联通的话,VideoDevices列表不会变,OnDeviceArrivalOrRemoval将会发生。它的 IsDeviceArrival参数会报告“true”,并且它的DeviceIndex参数会报告已经联通设备的索引。 通过测试IsVideoDeviceConnected (DeviceIndex),你可以检索任何视频捕获设备(不管是当前联通的或是没有联通的)。 PID和VID识别的USB视频捕捉设备 有PID anv VID 标识符的USB视频捕捉设备包含在VideoDevicesId列表中,在这个列表和VideoDevices列表有一样项目的数量。