Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从USB 3.0摄像头UWP读取数据_C#_.net_Camera_Uwp - Fatal编程技术网

C# 从USB 3.0摄像头UWP读取数据

C# 从USB 3.0摄像头UWP读取数据,c#,.net,camera,uwp,C#,.net,Camera,Uwp,我正在使用USB3.0摄像头来显示它的预览屏幕。但Windows似乎无法识别它是成像设备,所以当我尝试打开Windows 10的默认摄像头应用程序时,它显示了一个错误。 所以我的问题是,如何把USB3.0摄像头当作成像设备,我们可以在UWP中使用它? 我不确定我是否正确理解了这个问题 首先,您应该在应用程序清单中启用摄像头/网络摄像头功能 然后试试这个: MediaCapture _mediaCapture = new MediaCapture(); var devices = await D

我正在使用USB3.0摄像头来显示它的预览屏幕。但Windows似乎无法识别它是成像设备,所以当我尝试打开Windows 10的默认摄像头应用程序时,它显示了一个错误。 所以我的问题是,如何把USB3.0摄像头当作成像设备,我们可以在UWP中使用它?
我不确定我是否正确理解了这个问题

首先,您应该在应用程序清单中启用摄像头/网络摄像头功能

然后试试这个:

MediaCapture _mediaCapture = new MediaCapture();

var devices = await DeviceInformation.FindAllAsync(DeviceClass.VideoCapture);
DeviceInformation deviceInfo = devices.FirstOrDefault();

if (deviceInfo == null)
    deviceInfo = devices.ElementAtOrDefault(0);

var settings = new MediaCaptureInitializationSettings()
    {
        VideoDeviceId = deviceInfo?.Id,
        PhotoCaptureSource = PhotoCaptureSource.Auto,
        StreamingCaptureMode = StreamingCaptureMode.Video,
    };

if (deviceInfo == null)
    _mediaCapture = null;

if (_mediaCapture != null)
    {
        await _mediaCapture.InitializeAsync(settings);
        await _mediaCapture.StartPreviewAsync();
    }
编辑:

如果它不工作并且
设备
不包含您需要的摄像头,您应该尝试通过设备id/guid手动查找您的设备:

当你得到aqs时:

var myDevices = await DeviceInformation.FindAllAsync(aqs);
UsbDevice usbDevice = await Windows.Devices.Usb.UsbDevice.FromIdAsync(myDevices[0].Id);

// or try init MediaCaptureInitializationSettings
var settings = new MediaCaptureInitializationSettings()
{
    VideoDeviceId = myDevices.FirstOrDefault()?.Id,
    PhotoCaptureSource = PhotoCaptureSource.Auto,
    StreamingCaptureMode = StreamingCaptureMode.Video,
};

问题是UWP无法识别USB 3.0摄像头是视频捕获设备。因此,我无法通过设备信息找到它。FindAllAsyncIt是指
设备
不包含usb 3.0摄像头的内容?是的。它检测到我的相机只是一个USB设备,而不是视频捕获设备。是否尝试通过guid或deviceid获取相机设备?查看我的答案编辑
var myDevices = await DeviceInformation.FindAllAsync(aqs);
UsbDevice usbDevice = await Windows.Devices.Usb.UsbDevice.FromIdAsync(myDevices[0].Id);

// or try init MediaCaptureInitializationSettings
var settings = new MediaCaptureInitializationSettings()
{
    VideoDeviceId = myDevices.FirstOrDefault()?.Id,
    PhotoCaptureSource = PhotoCaptureSource.Auto,
    StreamingCaptureMode = StreamingCaptureMode.Video,
};