Forum: PC-Programmierung Was mache ich Falsch USB Kamera Livebild


von Johann (Gast)


Angehängte Dateien:

Lesenswert?

Hallo ich habe hier folgenden C#.net Frame code progrmmiert.
Aber leider bekomme ich kein Livebild von meiner USB Kamera.
Ich habe einen Fehler:
Zeile : comboBox1.Items.Add(VideoCaptureDevice.Name);
Das .Name wird nicht erkannt.
Im Anhang ist der Screenshot von Form1, links im Bild die Eigenschaften 
der Combobox.
Hier der C Code
Würde ich über Hilfe sehr freuen
1
using System;
2
using System.Collections.Generic;
3
using System.ComponentModel;
4
using System.Data;
5
using System.Drawing;
6
using System.Linq;
7
using System.Text;
8
using System.Windows.Forms;
9
using AForge.Video;
10
using AForge.Video.DirectShow;
11
12
namespace Camera
13
{
14
    public partial class Form1 : Form
15
    {
16
        private FilterInfoCollection VideoCaptureDevices;
17
        private VideoCaptureDevice FinalVideo;
18
        
19
        
20
21
        public Form1()
22
        {
23
            InitializeComponent();
24
        }
25
26
        private void Form1_Load(object sender, EventArgs e)
27
        {
28
            VideoCaptureDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice);
29
            foreach (FilterInfo VideoCaptureDivece in VideoCaptureDevices)
30
            {
31
                comboBox1.Items.Add(VideoCaptureDevice.Name);
32
            }
33
              comboBox1.SelectedIndex = 0;
34
35
        }
36
37
        private void button1_Click(object sender, EventArgs e)
38
        {
39
            FinalVideo = new VideoCaptureDevice(VideoCaptureDevices[comboBox1.SelectedIndex].MonikerString);
40
            FinalVideo.NewFrame += new NewFrameEventHandler(FinalVideo_NewFrame);
41
            FinalVideo.Start();
42
        }
43
        void FinalVideo_NewFrame(object sender, NewFrameEventArgs eventArgs)
44
        {
45
            Bitmap video = (Bitmap)eventArgs.Frame.Clone();
46
            pictureBox1.Image = video;
47
        }
48
49
        private void button2_Click(object sender, EventArgs e)
50
        {
51
            if (FinalVideo.IsRunning)
52
            {
53
                FinalVideo.Stop();
54
            }
55
        }
56
57
        
58
        
59
    }
60
}

von __tom (Gast)


Lesenswert?

du deklarierst mit der foreach anweisung eine variable 
"VideoCaptureDivece" und möchtest später auf "VideoCaptureDevice" 
zugreifen.

von Johann (Gast)


Lesenswert?

ist das ein Problem?
Ich versteh nicht ganz warum der dieses .Name vom Kompiler nicht 
akzeptiert wird...

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Natürlich ist das ein Problem, wenn Du eine Variable als X deklarierst, 
aber versuchst, sie als Y anzusprechen.
1
foreach (FilterInfo VideoCaptureDivece in VideoCaptureDevices)
2
{
3
  comboBox1.Items.Add(VideoCaptureDevice.Name);
4
}

Also entweder:

1
foreach (FilterInfo VideoCaptureDivece in VideoCaptureDevices)
2
{
3
  comboBox1.Items.Add(VideoCaptureDivece.Name);
4
}

oder
1
foreach (FilterInfo VideoCaptureDevice in VideoCaptureDevices)
2
{
3
  comboBox1.Items.Add(VideoCaptureDevice.Name);
4
}

Wird es langsam klarer?

von HildeK (Gast)


Lesenswert?

Rufus Τ. Firefly schrieb:
> Wird es langsam klarer?

Sag es ihm doch deutlicher!

Divece  ungleich  Device

von Johann (Gast)


Lesenswert?

Danke!!

Das nennt man dann wohl einen Tippfehler

Vielen Dank, hab ich leider übersehen


Viele Grüsse

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.