tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
6
ZUGRIFFE
2380
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von fastfred
    fastfred fastfred ist offline Mitglied Silber
    Registriert seit
    Sep 2005
    Beiträge
    82
    Hallo Community,

    ich habe es endlich geschafft die TV Karte anzusprechen. Eigentlich ganz easy. Funktioniert auch alles. Nur jetzt wollte ich eine Liste machen, wo ich das Eingangssignal auswähle(Tuner, Composite, S-Video, etc.). Die Liste ist auch schon fertig und es werden die möglichen Eingänge ausgelesen. Jetzt wollte ich das so machen, dass man das Eingangssignal aus der Liste auswählen kann. Nur es kommt beim Klicken auf den Preview-Button immer ein Fehler:

    ArgumentOutOfRangeException was unhandled

    Index was out of range. Must be non-negative and less than the size of the collection.
    Parameter name: index

    Hier der Code des Buttons:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    
    int m = 0;
                    int n = 0;
                    if (videodeviceselector.geräteliste.SelectedItems.Count > 0)
                    { m = videodeviceselector.geräteliste.SelectedItems[0].Index; }
                    else { m = 0; }
                    
                    Filter videoDevice = filters.VideoInputDevices[m];
                    Filter audioDevice = null;
                    capture = new Capture(videoDevice, audioDevice);
                    if (videodeviceselector.sourceliste.SelectedItems.Count > 0)
                    { capture.VideoSource = capture.VideoSources[videodeviceselector.sourceliste.SelectedItems[0].Index]; }
                    else { capture.VideoSource = capture.VideoSources[0]; }
                    
                    capture.PreviewWindow = videoPanel;

    Weiß jemand wodran es liegen könnte?

    Gruß

    Fast Fred
     

  2. #2
    Avatar von Norbert Eder
    Norbert Eder Norbert Eder ist offline Mitglied Diamant
    Registriert seit
    Feb 2004
    Ort
    Österreich / Graz
    Beiträge
    5.137
    Blog-Einträge
    51
    Debugger schon mal verwendet?

    Entweder gibt es kein SelectedItem oder keine VideoSource.
     

  3. #3
    Avatar von Christian Kusmanow
    Christian Kusmanow Christian Kusmanow ist offline Mitglied Diamant
    Registriert seit
    Aug 2004
    Ort
    Aachen (NRW)
    Beiträge
    2.208
    Blog-Einträge
    15
    Hi Fast Fred!

    Welche Frameworkversion verwendest denn?
    Und was verwendest als DirectX Wrapper, die Solution von TheCodeProject?
    Und zu guter letzt, in welcher Zeile tritt denn der Fehler auf?

    Schon mal was von Try-Catch gehört? Wenn nicht, geleich mal das Sticky im .NET Café angucken.
    Debugge dann das Ganze mal bis zu der entsprechenden Zeile und schau mal nach
    ob überhaupt genügend Elemente in der Collection drinn waren die die Ausnahme geworfen hat.
     
    MfG,
    Christian

    Wer sein Problem definiert, hat es schon halb gelöst!

    Bitte markiert eure Themen als erledigt. Sonst macht so ein Forum als Nachschlagewerk keinen Sinn.

    The Code Project! - C# Programming | C# / VB.NET Pendants

    Regeln + Netiquette

    Liebe FIAEs, verlasst euch nicht auf das was in der Berufsschule "vermittelt" wird
    und vor allem nicht auf das, was euch die IHK dazu erzählt!
    Die haben so viel Ahnung von dem Gewerk, wie der Bundestag vom Haushalt...

  4. #4
    Avatar von fastfred
    fastfred fastfred ist offline Mitglied Silber
    Registriert seit
    Sep 2005
    Beiträge
    82
    Ich baue mir das aus dem TheCodeProject-Projekt zusammen mit Framework 2.0.

    Ich habe das mal mit try-catch gemacht und dann hat er mir fast das selbe wie beim Debugger ausgespuckt(siehe angehängte Grafik).

    Und das ist der auslöser für den Fehler:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    
    int m = 0;
                    int n = 0;
                    if (videodeviceselector.geräteliste.SelectedItems.Count > 0)
                    { m = videodeviceselector.geräteliste.SelectedItems[0].Index; }
                    else { m = 0; }
                    
                    Filter videoDevice = filters.VideoInputDevices[m];
                    Filter audioDevice = null;
                    capture = new Capture(videoDevice, audioDevice);
                    if (videodeviceselector.sourceliste.SelectedItems.Count > 0)
                    { [B]capture.VideoSource = capture.VideoSources[videodeviceselector.sourceliste.SelectedItems[0].Index][/B]; }
                    else { capture.VideoSource = capture.VideoSources[0]; }
                    
                    capture.PreviewWindow = videoPanel;
    Miniaturansicht angehängter Grafiken Miniaturansicht angehängter Grafiken C# TV Source - capture.VideoSources Fehler!-25899attachment.jpg  
     

  5. #5
    Avatar von Christian Kusmanow
    Christian Kusmanow Christian Kusmanow ist offline Mitglied Diamant
    Registriert seit
    Aug 2004
    Ort
    Aachen (NRW)
    Beiträge
    2.208
    Blog-Einträge
    15
    In deinen capture.VideoSources gibt also kein Objekt an dem angegeben Index
    (sourceliste.SelectedItems[0].Index)
    Musst halt schauen, dass der richtige Index vorhanden ist...
     
    MfG,
    Christian

    Wer sein Problem definiert, hat es schon halb gelöst!

    Bitte markiert eure Themen als erledigt. Sonst macht so ein Forum als Nachschlagewerk keinen Sinn.

    The Code Project! - C# Programming | C# / VB.NET Pendants

    Regeln + Netiquette

    Liebe FIAEs, verlasst euch nicht auf das was in der Berufsschule "vermittelt" wird
    und vor allem nicht auf das, was euch die IHK dazu erzählt!
    Die haben so viel Ahnung von dem Gewerk, wie der Bundestag vom Haushalt...

  6. #6
    Avatar von fastfred
    fastfred fastfred ist offline Mitglied Silber
    Registriert seit
    Sep 2005
    Beiträge
    82
    mhhh....das stimmt. Nur wenn ich mal testweise anstatt
    Code :
    1
    
    [B]capture.VideoSource = capture.VideoSources[videodeviceselector.sourceliste.SelectedItems[0].Index];[/B]
    sage:
    Code :
    1
    
    [B]capture.VideoSource = capture.VideoSources[0];[/B]

    kommt genau der selbe Fehler. Oder bin ich jetzt gnaz falsch


    Gruß

    Fast Fred
     

  7. #7
    Avatar von fastfred
    fastfred fastfred ist offline Mitglied Silber
    Registriert seit
    Sep 2005
    Beiträge
    82
    Ich habe den Fehler gefunden!
    Und zwar dürfen
    Code :
    1
    
    capture = new Capture(videoDevice, audioDevice);
    und
    Code :
    1
    
    capture.VideoSource = capture.VideoSources[0];

    nicht in einem Void sein! Habe das getrennt gemacht. Zum testen einfach mal
    Code :
    1
    
    capture = new Capture(videoDevice, audioDevice);
    in den Form1_Load Void und den anderen Code in den Button-Void. Und siehe da - es hat geklappt.

    Trotzdem vielen Dank für eure Bemühungen .

    Gruß

    Fast Fred
     

Ähnliche Themen

  1. Kompilier Fehler - bin ratlos [Source]
    Von kingkicker8 im Forum C/C++
    Antworten: 3
    Letzter Beitrag: 26.01.08, 16:09
  2. Video Capture
    Von micky91 im Forum Videoschnitt, Videotechnik & -produktion
    Antworten: 5
    Letzter Beitrag: 23.08.07, 01:39
  3. Capture the soul
    Von parisienne im Forum Sonstige 3D-Programme
    Antworten: 0
    Letzter Beitrag: 19.10.06, 15:57
  4. Motion Capture?
    Von PP INTERACTIV im Forum 3D Studio Max
    Antworten: 4
    Letzter Beitrag: 17.08.06, 13:42
  5. Problem mit dv capture
    Von vanHalen im Forum Videoschnitt, Videotechnik & -produktion
    Antworten: 3
    Letzter Beitrag: 10.08.04, 11:57