Abspielen in Winamp

  • Themenstarter Themenstarter Daywalker1984
  • Beginndatum Beginndatum
DANKE für die vielen Vorschläge. :p

Das mit der Erstellung einer temporären Playlist hat nicht geklappt, da eine vonWinamp erstellte Playlist sowas wie:

#EXTM3U
#EXTINF:239,Gigi D'Agostino - L'Amour Toujours (Radio Edit)
C:\WINDOWS\Desktop\Gigi D'Agostino - L'Amour Toujours (Radio Edit).mp3
#EXTINF:243,Jay Z - Hard Knock Life
C:\WINDOWS\Desktop\Jay-Z - Hard Knock Life.mp3

->erkenne keinen Sinn dahinter.
Egal, mit Shellexecute() funzt es und mehr als abspielen möchte ich ja erstma nich.
Aber das mit den kurzen Dateinamen würde mich dann doch interessieren ;-) , allerdings reicht mein Englisch scheinbar nicht aus um zu kapieren was ich laut (eigentlich "deutscher") MSDN-Hilfe in die Klammer zum ausführen der GetShortPathName schreiben muss.
:confused:
Wenn einer Zeit und Lust hätte mir Noob das klar zu machen ?... ;-)
 
Zu allererst mal ein wichtiger Hinweis, wenn Buffer an ne API übergeben werden sollen: Es ist immer zuerst Speicher zu allozieren für die Funktion! Die simple Deklaration reicht nicht aus!

Die GetShortPathName() Funktion erwartet z.B. nen Buffer, indem sie den Pfadnamen ablegen kann. Ungefähr so:

Dim SPName As String
SPName = String$(256,Chr$(0))

GetShortPathName "C:\Programme\Elend langer Ordnername\noch son Unterordner\",SPName,256

Wichtig ist dabei, das SPName zuerst mit String$ gefüllt wird, damit auch wirklich Speicher vorhanden ist...

Existiert der Pfad nicht, ist der Rückgabewert von GetShortPathName() gleich 0, und GetLastError() gibt 2 zurück: "Das System kann die angegebene Datei nicht finden."

If GetShortPathName(blabla) = 0 then
if Err.Lastdllerror = 2 then
'Pfad net gefunden
End if
end if
 
Achja, und das M3U - Format iss net wirklich so der Knaller:

#EXTM3U
#EXTINF:546,Arj Snoek - Optische Täuschung
C:\MP3s\Arj Snoek\arj_snoek - optische_täuschung.mp3

#EXTINF bezeichnet zunächst die Länge des Liedes in Sekunden, danach folgt getrennt von einem Komme der Eintrag in der Playlist. Eine Zeile darauf folgt die Position der Datei. Man kann hier auch relative Pfade zur Playlist angeben, aber ich vertraue doch auf absolute :)
 
@Celvin
Ob du's glaubst oder nicht , dieses Sytem in der Playlist hab ich auch schon erahnt -is ja auch nich wirklich unlösbar *g*-
allerdings hab ich mich davon beeinflussen lassen, dass eine per Winamp erzeugte *.pls - Datei nicht mehr funktionierte als ich ein paar Zeilen mit dem Editor daraus löschte. Hab deshalb gedacht da isn Haken.

Genug der Ausreden :-) : Wenn ich die Playlist per VB erzeuge, kann ich zwar damit Winamp starten aber das/die Lied(er) darin werden nicht gespielt.

Wenn du dafür noch ne Lösung hättest....:rolleyes:

Ach ja DANKE nochmal für die genauere Erklärung der "GetShortPathName"
funzt wunderbar!!!
 
Joa weird...also wenn ich ne .m3u starte, spielt der die auch ab.

Naja, egal...Winamp kannst du mit folgendem Befehl zum Abspielen bewegen:

SendMessage hWinAmpWin,WM_COMMAND,40045,ByVal 0

Wobei hWinAmpWin das Handle (HWND) des Winamp-Hauptfensters iss...das bekommste z.B. mit FindWindow(Klassenname: "Winamp v1.x")

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Private Const WM_COMMAND = &H111

Dim hWinAmpWin As Long
hWinAmpWin = FindWindow("Winamp v1.x",vbNullString)

SendMessage hWinAmpWin,WM_COMMAND,40045,ByVal 0
 
Also ich hab das auch mal ausprobiert und das mit den Playlisten geht ganz einfach ich hab dazu nicht extra ein Programm geschrieben sonder nur einfach mit dem EDITOR von Windows eine Datei erstellt mit der endung .m3u in dieser Datei stehen einfach die Pfade drin und zwar die absoluten:
z.B.:

c:\lieder\meine\rock und so ein zeugs\blabla1 oder so.mp3
c:\lieder\meine\rock und so ein zeugs\blabla2 oder so.mp3
c:\lieder\meine\rock und so ein zeugs\blabla3 oder so.mp3
c:\lieder\meine\rock und so ein zeugs\blabla4 oder so.mp3
c:\lieder\meine\rock und so ein zeugs\blabla5 oder so.mp3
c:\lieder\meine\rock und so ein zeugs\blabla6 oder so.mp3
c:\lieder\meine\rock und so ein zeugs\blabla7 oder so.mp3

und das geht dann wenn ich auf die Datei klicke. Also wenn du mit deinem Programm eine Datei erstellst dann geht das sicherlich auch. Und du dann Winamp mit eben dieser erstellten Playliste startest. Da musst du dich nicht einmal mehr mit kurzen 8.3 Dateinamen rumärgern.

Gruss Homer
 
Zurück