Re: m3u Playlist abspielen
Zitat:
|
Re: m3u Playlist abspielen
Zitat:
|
Re: m3u Playlist abspielen
Zitat:
Delphi-Quellcode:
uses ... Contnrs; type tm3uitem = class(TPersistent) private fEXTINF: string; ffilename: string; public function getfullfilename: string; function getmp3file: string; published property EXTINF: string read fEXTINF write fEXTINF; property FileName: string read ffilename write ffilename; end; ... var olist: tobjectlist; ... { tm3uitem } function tm3uitem.getfullfilename: string; begin result:=ExpandFileName(ffilename); end; function tm3uitem.getmp3file: string; begin result:=extractfilename(ffilename); end; procedure tolistbox(box: tlistbox;olist: tobjectlist); var i:integer; begin for i:=0 to olist.Count-1 do begin box.Items.Add((olist[i]as tm3uitem).getmp3file); end; end; function getfilenamebyindex(i:integer;olist: tobjectlist):string; begin result:= (olist[i]as tm3uitem).getfullfilename; end; procedure loadm3u; var slist:tstringlist; i:integer; item:tm3uitem; s,filename:string; begin filename:='deine.m3u'; olist.Clear; SetCurrentDir(FileName); // Damit relative pfad angaben geladen werden können wichtig!!!! slist:=tstringlist.Create; try slist.LoadFromFile(FileName); for i:=0 to slist.count-1 do begin if trim(slist[i])<>'#EXTM3U' then begin // erste zeile nicht beachten s:= slist[i]; if length(s)>0 then if s[1]<>'#' then begin // # Zeilen nicht beachten item:=tm3uitem.Create(); item.filename:=slist[i]; // dateinamen hinzufügen if (slist[i-1][1]='#')and(trim(slist[i-1])<>'#EXTM3U') then begin item.EXTINF:=slist[i-1]; // idtag info hinzufügen falls vorhanden end; olist.add(item); end; end; end; finally slist.Free; end; end; end; |
Re: m3u Playlist abspielen
Delphi-Quellcode:
in der prozedur AddSongToPlayList() wird der übergebene dateiname dann geladen. die prozedur behandelt relative und absolute dateinamen, sowie internetstreams, UNC-netzwerkpfade und http-/ftp-pfadangaben.
sl := TStringList.create();
try sl.loadFromFile(FileName); try if sl.Count = 0 then raise Exception.Create('Die Playlist-Datei ist leer'); //format checken if sl[0] = '#EXTM3U' then begin { extended m3u playlist } //durch alle einträge interieren for i:=1 to sl.Count-1 do begin if copy(sl[i], 1, 8) <> '#EXTINF:' then AddSongToPlayList(sl[i]); end; end else begin { standard m3u playlist } for i:=0 to sl.count-1 do begin AddSongToPlayList(sl[i]); end else raise Exception.Create('Dies ist leider keine unterstützte Playlist-Datei'); end; except raise; end; finally sl.free(); end; nur so als denkanstoß... aeno |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:19 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz