Programmieren - alles kontrollieren 4.940 Themen, 20.676 Beiträge

mp3-Dateien in Listbox nacheinander abspielen

Edgar Rau / 4 Antworten / Flachansicht Nickles

Hallo zusammen,

ich habe 'mal wieder eine Frage in Visual Basic  6.

Ich habe ein kleines Programm erstellt, mit dem ich mp3's suchen und in einer Listbox anzeigen lassen kann. Dann habe ich eine zweite Listbox eingefügt, in die ich ausgewählte mp3's aus der ersten Listbox kopieren kann, dass soll eine Playliste werden.

Ich schaffe es aber einfach nicht, alle ausgewählten mp3's abspielen zu lassen.

Wenn ich folgenden Code ausführe:

Dim x As Integer
x = 0
For x = 0 To List1.ListCount - 1
List1.ListIndex = x
Me.WindowsMediaPlayer1.URL = List1
Next x

wird nur der letzte Song abgespielt.

Füge ich allerdings eine msgbox ein:

Dim x As Integer
x = 0
For x = 0 To List1.ListCount - 1
List1.ListIndex = x
Me.WindowsMediaPlayer1.URL = List1
MsgBox x
Next x

wird das erste Lied gespielt und es erscheint die MsgBox mit "0". Wenn ich dann auf OK klicke, wird das zweite Lied gespielt und es erscheint wieder die MsgBox, diesmal mit "1".

wie kann ich erreichen, dass alle Lieder problemlos abgespielt werden.

Vielen Dank für Eure Hilfe

Gruß Edgar

Wer brauchen ohne zu gebraucht, braucht brauchen gar nicht zu gebrauchen
bei Antwort benachrichtigen
Edgar Rau Borlander „Das schaut ganz so aus als würde der Mediaplayer sofort auf ein Setzen der URL reagieren und diese abspielen, ohne dabei ...“
Optionen

Hallo Borlander, vielen Dank für Dein Interesse, ich habe jetzt eine Lösung gefunden.

Mit diesem Code:

  Dim x As Integer
x = 0
For x = 0 To List1.ListCount - 1
List1.ListIndex = x
Dim myMP3 As Object
 
Set myMP3 = CreateObject("MCI.MMControl")
 
With myMP3
    .Notify = False
    .Wait = True
    .Shareable = False
    .Command = "Close"
 
    .FileName = List1
    .Command = "Open"
    
Me.WindowsMediaPlayer1.URL = List1
MsgBox "Die Playlist wurde gestartet." & vbNewLine & vbNewLine & "Mit Klick auf 'OK' wird der nächste Song gespielt.", , "Windows MediaPlayer", , , .Length / 1000
    .Command = "Close"
End With
 
Set myMP3 = Nothing

Next x

werden die MP3's nacheinander abgespielt.

Die Länge einer MP3 wird ausgelesen und als Parameter in Millisekunden der modifizierten MsgBox übergeben (.Lenght/1000).

Für die modifizierte MsgBox musste ein Modul eingefügt werden.

Copy & Paste

Gruß Edgar

Wer brauchen ohne zu gebraucht, braucht brauchen gar nicht zu gebrauchen
bei Antwort benachrichtigen