设备模式

IEEE 1394 和 USB 摄像机可以在相机模式和视频磁带录制器之间切换, (VTR) 模式。 当 IEEE 1394 摄像机切换模式时,设备重置,应用程序必须再次枚举它。 应用程序无法以编程方式切换模式。 另一方面,USB 摄像机可以在相机和 VTR 模式之间切换,而无需重置,应用程序可以更改模式。

MSDV 驱动程序

若要在 IEEE 1394 设备上获取当前模式,请使用值ED_DEVCAP_DEVICE_TYPE调用 IAMExtDevice::GetCapability 方法。 如果该方法返回值ED_DEVTYPE_VCR,则设备处于 VTR 模式,并且具有暂停、停止、快速转发和回退等功能。 否则,如果该方法返回ED_DEVTYPE_CAMERA,则设备处于相机模式。 下面的代码示例演示如何查询设备类型:

if (MyDevCap.bHasDevice) 
{
    LONG lDeviceType = 0;
    MyDevCap.pDevice->GetCapability(ED_DEVCAP_DEVICE_TYPE, &lDeviceType, 0);

    if (lDeviceType == ED_DEVTYPE_VCR) 
    {
        // Device is a VTR. Enable all VTR functions.
    }
    else 
    {
        // Device is a camera. 
        // Enable record and record-pause; disable other functions.
    }
}

如果摄像机脱机,则应在下次可用时再次查询它。 删除设备时,筛选器图管理器会发布 EC_DEVICE_LOST 事件。

UVC 驱动程序

由于 USB 视频设备可以在不重置的情况下切换模式,因此前面的示例中显示的代码对于 USB 设备来说并不可靠。 请改用 ISelector 接口获取当前模式。 如果设备支持模式,还可以使用此接口以编程方式切换模式。

控制 DV 摄像机