使用DShow.Net/ DirectX.Capture的C#网络摄像头:显示设备名称

时间:2014-05-04 19:15:15

标签: c# directx webcam directshow

美好的一天。我用DShow.Net/ DirectX.Capture控制我的usb网络摄像头。它找到并初始化所有连接的设备,但它显示设备的名称,以拥有数字(1.2.3 ...)的按钮。我想显示设备的全名。我的代码示例:

if (filters.VideoInputDevices != null)
            {
                for (var i = 0; i < filters.VideoInputDevices.Count; i++)
                {
                    var device = filters.VideoInputDevices[i];

                    var btn = new Button();

                    btn.Text = i.ToString();
                    btn.ForeColor = Color.White;
                    btn.BackColor = Color.DarkSlateBlue;
                    btn.Width = 50;

                    btn.Click += (obj, evt) =>
                    {
                        var thisButton = (Button)obj;

                        if (int.Parse(thisButton.Text) != deviceName)
                        {
                            if (capture != null)
                            {
                                capture.Dispose();
                                capture.Stop();
                                capture.PreviewWindow = null;
                            }

                            deviceName = int.Parse(thisButton.Text);
                            preview(deviceName);
                        }
                    };

                    flowLayoutPanel1.Controls.Add(btn);
                }
            }

2 个答案:

答案 0 :(得分:2)

更改

btn.Text = i.ToString();

btn.Text = device.Name;

然后

if (int.Parse(thisButton.Text) != deviceName)

if (thisButton.Text != deviceName)

请注意,在StackOverflow上提出问题的经验法则是:

  • 研究工作
  • 解决问题的最小理解

答案 1 :(得分:0)

你必须做这样的事情。

QWebEngine

//改变这里     var btn = new Button();     在此处输入代码     btn.text = Device [1] .text;'

///我认为其余的代码是相同的