Autor Beitrag
BleachRukia
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 18.01.12 09:54 
Hallo liebe Community,

heute stelle ich eine Frage an der ich schon sehr lange sitze und einfach keine richtige Lösung finde, es geht um folgendes:
Ich habe mir einen kleinen Medien Player wo der Windows Media Player enthalten ist geschrieben, habe mir dazu auch einen Playlist Dialog geschrieben, jetzt zu meinem Problem, immer wenn das Event: axWindowsMediaPlayer1_OpenStateChange eintritt, möchte ich auch immer das im Playlist Dialog der Eintrag ausgewählt wird von der Datei die gerade wiedergegeben wird, das habe ich auch geschafft durch den Befehl: this.PlaylistListBox.SelectedItem = axWindowsMediaPlayer1.currentMedia.sourceURL;, nur jetzt habe ich das Problem, was ist wenn eine Datei doppelt in der Playlist ist, das bedeutet wenn er gerade die doppelte Datei wiedergibt, spring das Programm zum ersten Eintrag und wählt leider nicht den zweiten Eintrag aus weil ja der sourceURL der selbe ist :(

Gibt es eine Möglichkeit den Index der aktuellen Datei die gerade wiedergeben wird zu bekommen ?

Liebe Grüße BleachRukia
mats74
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 189
Erhaltene Danke: 26

Win 10
VS 2017/19, C++, C#
BeitragVerfasst: Mi 18.01.12 11:37 
Hallo BleachRukia

Wenn ich deine Frage richtig verstehe, verlierst Du den Indexwert für die Selektion in der ListBox.

Eine einfache Lösung wäre, wenn Du beim selektieren in der ListBox (Titelauswahl) den Indexwert irgendwo speichern würdest (z.B. in der Tag-Eigenschaft der ListBox).
Dann könntest Du die Selektion in der Listbox an diesen Tagwert anhängen und somit den richtigen Eintrag selektieren.

Eine etwas umfangreichere Lösung wäre, wenn Du den Inhalt der ListBox beim Selektieren in eine BindingList einfügst (inkl. Indexwert und einem boolschen Wert). Dann kannst Du die Selektion in der ListBox anhand des Eintrages in der BindingList erstellen (nach aktuellen Titel durchsuchen und Index auslesen) und erhälst somit auch den richtigen Eintrag.

_________________
Gruss
mats74
BleachRukia
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 18.01.12 11:52 
Hallo mats74,

zum einem verliere ich den Wert, aber eigentlich möchte ich nur herausfinden bei welchem index ich gerade bin beim abspielen meiner Playlist, ich meine eine Playlist ist ja auch nichts anderes als eine ListBox und bei einer ListBox kann ich über SelectedIndex den aktuellen index abfragen !?

Liebe Grüße BleachRukia
mats74
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 189
Erhaltene Danke: 26

Win 10
VS 2017/19, C++, C#
BeitragVerfasst: Mi 18.01.12 12:14 
Wenn die Titel der Reihenfolge gemäss des Playlistinhaltes abgespielt werden, kannst Du den Index nach jedem gespielten Titel um 1 erhöhen.
Die Selektion müsste dann beim entsprechenden Events geändert werden.
Ansonsten musst Du eine eindeutige Zuweisung (z.B. Indexwert) der Titel zur Playlist erstellen (wie oben erwähnt).
Nur so kannst Du die Selektion der Playlist aktuell halten.

_________________
Gruss
mats74
BleachRukia
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 18.01.12 14:26 
Hallo mats74,

der Windows Media Player kann aber nicht nur nach vorne gehen, z.b. kann ich auch einen vohrigen Titel abspielen, was für ein Event muss ich den benutzen um erst einmal herauszufinden ob jetzt der nächste Titel wiedergeben wird oder der Titel davor ?

Liebe Grüße BleachRukia
mats74
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 189
Erhaltene Danke: 26

Win 10
VS 2017/19, C++, C#
BeitragVerfasst: Mi 18.01.12 16:42 
Das kann ich Dir leider nicht sagen, da ich mich mit dem Media Player noch nie richtig befasst habe.
Welchen Event Du aus dem Media Player verwendest, musst Du also selbst entscheiden.
Nach ein Bisschen googeln scheint mir der AxWindowsMediaPlayer1_PlayStateChange Event wahrscheinlich passend.

_________________
Gruss
mats74
BleachRukia
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 18.01.12 18:59 
Hallo mats74,
habe mir das Event angeschaut, kann jetzt aber leider nichts finden womit ich prüfen kann ob ich mich jetzt in der Playlist vor oder zurück begebt habe!?

Liebe Grüße BleachRukia
mats74
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 189
Erhaltene Danke: 26

Win 10
VS 2017/19, C++, C#
BeitragVerfasst: Do 19.01.12 08:09 
... Du könntest z.B. auch auf den aktuell gespielten Titel die Selektion aktualisieren:
ausblenden C#-Quelltext
1:
2:
3:
4:
if (axWindowsMediaPlayer1.Ctlcontrols.currentItem.sourceURL.ToString() == "Dein URL aus der BindingList")
                {
                    // ... dann mach mal was (z.B. Selektion der PlayList aktualisieren)
                }

Wenn Du keinen Event für diese Anweisung gebrauchen willst, kannst oder findest, hast Du ja noch die Möglichkeit mit der Timer-Klasse zu arbeiten.

_________________
Gruss
mats74