Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   M3U Playlist Creator (https://www.delphipraxis.net/129528-m3u-playlist-creator.html)

toyoman 20. Feb 2009 17:09


M3U Playlist Creator
 
Liste der Anhänge anzeigen (Anzahl: 1)
Dieser sogenannte Playlist Creator erstellt auf einfache Art und Weise M3U Playlists mit fixen oder relativen Pfaden. Das Programm ist noch in der Testphase und kann auf Herz und Nieren geprüft werden.

Die Technik sollte grösstenteils schon funktionieren, die Optik ist noch nicht so wie sie sein sollte...

Das Tool inkl. Delphi Sourcecode kann hier runtergeladen werden:

Click für Download (Grösse ca. 1MB)

Bitte die Ini-Datei vor Benutzung anpassen (Pfade für Medien Source und Export Pfad).

Damit das Projekt in Delphi 2007 geöffnet werden kann, müssen die JVCL (Jedi) Komponenten installiert sein. Siehe: http://sourceforge.net/project/showf...group_id=45786

Feedback erwünscht.

Hintergrund zur Entstehung des Tools:
Da meine Musikdaten in vielen Unterordnern liegen wollte ich ein einfaches Tool machen welches mit fixen Pfaden Playlisten erstellen kann. Meine zukünftige Vision für dieses Tool wäre allerdings, dass es sämtliche Verzeichnisse einliest, in eine SQL DB speichert und über ein GUI aus der DB die Media Files ausgewählt und damit eine Playlist erstellt wird. Dies hätte den genialen Nebeneffekt, dass man gleich noch alle Musik schön archiviert hätte und auch noch schön suchen könnte...

Hybrid666 21. Feb 2009 20:33

Re: M3U Playlist Creator
 
Servus,

also hab dein Programm grade mal getestet. Leider ist es für mich nicht nutzbar, ich bekomme von start ab immer einen Fehler wenn er was ins log schreiben will :(

Ich kann dir leider nicht sagen woran es liegt, da die Fehlermeldungen selbstgemacht aussehen und wohl nicht von Delphi selbst stammen.

Wenn ich ca 10 Fehler wegklicke dann bin ich im hauptprogramm.

Da ichs nicht testen kann mal ne frage: speichert er auch die ID3 infos von mp3 im Winamp Format in die m3u datei? wär ein klasse feature

Edit: bin nun ins hauptfenster gekommen. Ein kleinen bug hab ich gefunden: WEnn ich auch advanced playlist klicke, dann werden die 2 radiobuttons deaktiviert und ich kann nichtmehr auf simple gehen :(

MfG

toyoman 22. Feb 2009 14:04

Re: M3U Playlist Creator
 
Zitat:

Zitat von Hybrid666
Servus,

also hab dein Programm grade mal getestet. Leider ist es für mich nicht nutzbar, ich bekomme von start ab immer einen Fehler wenn er was ins log schreiben will :(

Ich kann dir leider nicht sagen woran es liegt, da die Fehlermeldungen selbstgemacht aussehen und wohl nicht von Delphi selbst stammen.

Wenn ich ca 10 Fehler wegklicke dann bin ich im hauptprogramm.

Da ichs nicht testen kann mal ne frage: speichert er auch die ID3 infos von mp3 im Winamp Format in die m3u datei? wär ein klasse feature

Edit: bin nun ins hauptfenster gekommen. Ein kleinen bug hab ich gefunden: WEnn ich auch advanced playlist klicke, dann werden die 2 radiobuttons deaktiviert und ich kann nichtmehr auf simple gehen :(

MfG

hallo

könnte daran liegen, dass er das logfile nicht ins userprofil schreiben kann. er will dies unter anwendungsdaten\plc speichern im profil von deinem benutzer (also sprich: c:\documents and settings\...
oder hast du VISTA? auf vista hab ich es nämlich nicht durchgetestet, sollte aber eigentlich auch funzen.

die ID3 infos werden derzeit noch nicht beachtet. das die radiobuttons deaktiviert werden ist bewusst so, weil du wieder auf NEU bzw. NEW klicken sollst um eine neue Liste abzulegen. wenn du während der erstellung den modus wechseln könntest, hätte ich nachher beim speichern ein problem ;-)

toms 22. Feb 2009 14:27

Re: M3U Playlist Creator
 
Hallo

Ein Screenshot vom Programm wäre jeweils wünschenswert!

Hybrid666 22. Feb 2009 21:55

Re: M3U Playlist Creator
 
Zitat:

Zitat von toyoman
Zitat:

Zitat von Hybrid666
Servus,

also hab dein Programm grade mal getestet. Leider ist es für mich nicht nutzbar, ich bekomme von start ab immer einen Fehler wenn er was ins log schreiben will :(

Ich kann dir leider nicht sagen woran es liegt, da die Fehlermeldungen selbstgemacht aussehen und wohl nicht von Delphi selbst stammen.

Wenn ich ca 10 Fehler wegklicke dann bin ich im hauptprogramm.

Da ichs nicht testen kann mal ne frage: speichert er auch die ID3 infos von mp3 im Winamp Format in die m3u datei? wär ein klasse feature

Edit: bin nun ins hauptfenster gekommen. Ein kleinen bug hab ich gefunden: WEnn ich auch advanced playlist klicke, dann werden die 2 radiobuttons deaktiviert und ich kann nichtmehr auf simple gehen :(

MfG

hallo

könnte daran liegen, dass er das logfile nicht ins userprofil schreiben kann. er will dies unter anwendungsdaten\plc speichern im profil von deinem benutzer (also sprich: c:\documents and settings\...
oder hast du VISTA? auf vista hab ich es nämlich nicht durchgetestet, sollte aber eigentlich auch funzen.

die ID3 infos werden derzeit noch nicht beachtet. das die radiobuttons deaktiviert werden ist bewusst so, weil du wieder auf NEU bzw. NEW klicken sollst um eine neue Liste abzulegen. wenn du während der erstellung den modus wechseln könntest, hätte ich nachher beim speichern ein problem ;-)

Abend, nein ich hab Windows XP SP3. Eigentlich sollte er dort schreiben können (alle meine Programme schreiben nach %appdata%). Kann es vllt dran liegen das der Ordner in den er schreiben will nicht existiert oder sowas?

Wär toll wenns funktioniert, würde es sehr gerne testen.

MfG

toyoman 22. Feb 2009 21:58

Re: M3U Playlist Creator
 
Zitat:

Zitat von Hybrid666
Zitat:

Zitat von toyoman
Zitat:

Zitat von Hybrid666
Servus,

also hab dein Programm grade mal getestet. Leider ist es für mich nicht nutzbar, ich bekomme von start ab immer einen Fehler wenn er was ins log schreiben will :(

Ich kann dir leider nicht sagen woran es liegt, da die Fehlermeldungen selbstgemacht aussehen und wohl nicht von Delphi selbst stammen.

Wenn ich ca 10 Fehler wegklicke dann bin ich im hauptprogramm.

Da ichs nicht testen kann mal ne frage: speichert er auch die ID3 infos von mp3 im Winamp Format in die m3u datei? wär ein klasse feature

Edit: bin nun ins hauptfenster gekommen. Ein kleinen bug hab ich gefunden: WEnn ich auch advanced playlist klicke, dann werden die 2 radiobuttons deaktiviert und ich kann nichtmehr auf simple gehen :(

MfG

hallo

könnte daran liegen, dass er das logfile nicht ins userprofil schreiben kann. er will dies unter anwendungsdaten\plc speichern im profil von deinem benutzer (also sprich: c:\documents and settings\...
oder hast du VISTA? auf vista hab ich es nämlich nicht durchgetestet, sollte aber eigentlich auch funzen.

die ID3 infos werden derzeit noch nicht beachtet. das die radiobuttons deaktiviert werden ist bewusst so, weil du wieder auf NEU bzw. NEW klicken sollst um eine neue Liste abzulegen. wenn du während der erstellung den modus wechseln könntest, hätte ich nachher beim speichern ein problem ;-)

Abend, nein ich hab Windows XP SP3. Eigentlich sollte er dort schreiben können (alle meine Programme schreiben nach %appdata%). Kann es vllt dran liegen das der Ordner in den er schreiben will nicht existiert oder sowas?

Wär toll wenns funktioniert, würde es sehr gerne testen.

MfG

ja kannst du mal manuell diese ordnerstruktur anlegen:
C:\Documents and Settings\%benutzername%\Application Data\PLC\Logs
eigentlich sollte das programm dies selber tun. hat er bei mir zumindest. aber scheint bei dir nicht zu funzen.

wenn der pfad vorhanden ist sollte er ja dann schreiben können und somit sollte das programm auch laufen.

Hybrid666 24. Feb 2009 06:56

Re: M3U Playlist Creator
 
daran scheints nicht gelegen zu haben :(

die selben errors kommen und dahinter hängt nun noch ein "Ungültiger Dateiname".

Edit:

Okay ich weiß nun woran es liegt: dein programm versucht auf biegen und brechen nach c:\Dokumente und Einstellungen\User\Application Data\PLC\Logs zu schreiben. aber ich hab ein deutsches XP, da heißt er ordner leider "Anwendungsdaten" statt application data. Du solltest vielleicht den pfad %appdata%\PLC\Logs verwenden und %appdata% auflösen, hier ein code wie das geht:
Delphi-Quellcode:
function TForm1.GetDirectory: String;
var
  Appdata : String;
begin
  Appdata := SysUtils.GetEnvironmentVariable('appdata');
  if not DirectoryExists (Appdata + '\PLC') then
    mkdir (appdata + '\PLC');
  if not DirectoryExists (Appdata + '\PLC\Logs') then
    mkdir (appdata + '\PLC\Logs');
  result := Appdata + '\PLC\Logs';
end;
MfG

fkerber 24. Feb 2009 08:46

Re: M3U Playlist Creator
 
Hi!

Könntest du bitte im ersten Beitrag noch die Größe des Downloads angeben?
Danke!


Ciao, Frederic

toyoman 24. Feb 2009 08:58

Re: M3U Playlist Creator
 
Zitat:

Zitat von Hybrid666
daran scheints nicht gelegen zu haben :(

die selben errors kommen und dahinter hängt nun noch ein "Ungültiger Dateiname".

Edit:

Okay ich weiß nun woran es liegt: dein programm versucht auf biegen und brechen nach c:\Dokumente und Einstellungen\User\Application Data\PLC\Logs zu schreiben. aber ich hab ein deutsches XP, da heißt er ordner leider "Anwendungsdaten" statt application data. Du solltest vielleicht den pfad %appdata%\PLC\Logs verwenden und %appdata% auflösen, hier ein code wie das geht:
Delphi-Quellcode:
function TForm1.GetDirectory: String;
var
  Appdata : String;
begin
  Appdata := SysUtils.GetEnvironmentVariable('appdata');
  if not DirectoryExists (Appdata + '\PLC') then
    mkdir (appdata + '\PLC');
  if not DirectoryExists (Appdata + '\PLC\Logs') then
    mkdir (appdata + '\PLC\Logs');
  result := Appdata + '\PLC\Logs';
end;
MfG

du hast recht. hab grad mal nachgeguckt. ich habe eine funktion welche mir das Userprofil zurückgibt (aus der Registry):
Delphi-Quellcode:
function getUserProfilePath : String;
begin
    GetEnvironmentVariable('USERPROFILE', cmdBUffer, SizeOf(cmdBuffer)); {Userprofile Variable auslesen}
    result:=cmdBuffer;
    Profilepath:=cmdBuffer;
end;
allerdings hänge ich danach noch fix die tas_AppData konstante an, welche in meiner myGlobals Unit fix definiert ist (ich arbeite immer auf englischen Systemen).

Delphi-Quellcode:
      // Konfiguration einlesen
      getinipath;
      getusername;

      // Verzeichnis prüfen u. erstellen für Logfile Dateien (Profil\Appdata...)
      chkdir(getuserprofilepath+tas_appdata);
myGlobals:

Delphi-Quellcode:
const
  condatei:string     = 'plc_init.con';
  inidatei:string     = 'plc_init.ini';
  logdatei:string     = 'plc_log.log';
  sqlcondatei:string  = 'plc_conn.dat';
  expcdatei:string    = 'plc_excp.dat';
  logfilesdir:string  = '\Application Data\PLC\Logs';
  tas_appdata:string  = '\Application Data\PLC';
  m3u_zeile1           = '#EXTM3U';
  m3u_zeile2           = '#EXTINF:';
werde dies umbauen und diese konstanten ins Ini-File auslagern oder aber deine funktion reinhängen...

Satty67 24. Feb 2009 09:34

Re: M3U Playlist Creator
 
Die Variable AppData ist nicht nötig, wenn es sowieso Result zugewiesen wird. Dann gibt die obige Function bei Fehlschlagen auch einen ungültigen Pfad zurück?
Delphi-Quellcode:
function TForm1.GetDirectory: String;
begin
  Result := SysUtils.GetEnvironmentVariable('appdata');
  if FileCtrl.ForceDirectories(Result + '\PLC\Logs') then
    Result := Result + '\PLC\Logs';
end;

// Alternativ
function TForm1.GetDirectory(const Default : String): String;
begin
  Result := SysUtils.GetEnvironmentVariable('appdata');
  if FileCtrl.ForceDirectories(Result + '\PLC\Logs') then
    Result := Result + '\PLC\Logs' else Result := Default;
end;
Ist jetzt ungetestet, weil ich hier kein passendes Delphi zum ausprobieren hab'. D5 kennt "GetEnvironmentVariable" nicht, gibt die Function den Pfad mit/ohne Delimiter zurück?

Hybrid666 24. Feb 2009 12:29

Re: M3U Playlist Creator
 
hi, die funktion gibt es ohne ein "\" zurück, also einfach c:\blabla\Anwendungsdaten

ich hab in meinem project joytoany ne funktion verbaut, die das appdata verzeichniss auf allen system sucht (teils systemabhängig) und eine fehlerbehandlung besitzt, kannst es dir ja auf sourceforge mal anschaun. ist in der uJTAFunctions.pas drinne.

MfG

toyoman 25. Feb 2009 11:07

Re: M3U Playlist Creator
 
Nochmal zum Thema Logfile Erstellung.
Habe das Problem erkannt und nun die Technik überarbeitet. Neu sollte also die OS Sprache kein Problem mehr darstellen. Ausserdem wird die Ordnerstruktur nun auch wirklich automatisch erstellt (da war auch noch ein Bug drin). Ich verwende neu die getAppDataPath Funktion für die Erkennung des Anwendungsdaten Ordners im Profil.

Download: Source ist aktuell, siehe erster Beitrag.

master87 18. Sep 2009 23:56

Re: M3U Playlist Creator
 
Naja man kann ja nur mp3 und wav in die playlist einfügen.Veleicht ist das hier was für dich hab ich sogar hier gefunden.
Ist auf der bass.dll aufgebaut und ist aus dem Porject Mein erster mp3 player.
Delphi-Quellcode:
procedure TForm1.BtnAddFilesClick(Sender: TObject);
var i: Integer;
begin
  if FilesOpenDialog.Execute then
    for i := 0 to FilesOpenDialog.Files.Count - 1 do
      MeMPPlaylist.Add(FilesOpenDialog.Files[i]);
end;//Die Sounds werden in eine Tlistview eingefügt
Gespeichert wird das ganse so
Delphi-Quellcode:
procedure TForm1.BtnSaveListClick(Sender: TObject);
begin
  if PlaylistSaveDialog.Execute then
    MeMPPlaylist.SaveToFile(PlaylistSaveDialog.FileName);
end;
Delphi-Quellcode:
// ================================================
// Playlist-Dateien laden und speichern
// ================================================
procedure TMeMPPlaylist.LoadFromM3U(aFilename: String);
var mylist: tStringlist;
  i: Integer;
  s: String;
begin
  mylist := TStringlist.Create;
  mylist.LoadFromFile(aFilename);
  if (myList.Count > 0) then
  begin
    if (myList[0] = '#EXTM3U') then //Liste ist im EXT-Format
    begin
      i := 1;
      while (i < myList.Count) do
      begin
        // Zuerst kommen ggf. die ExtInf-Daten
        s := myList[i];
        if trim(s) = '' then
          inc(i)
        else
        begin
          if (copy(s,0,7) = '#EXTINF') then // ExtInf-Zeile überspringen
            inc(i);
          Add(ExpandFilename(myList[i]));
          inc(i);
        end;
      end;
    end
    else
      // Liste ist nicht im EXT-Format - einfach nur Dateinamen
      for i := 0 to myList.Count - 1 do
      begin
        if trim(mylist[i])='' then continue;
        Add(ExpandFilename(myList[i]));
      end;
  end;
  FreeAndNil(myList);
end;
Delphi-Quellcode:
Hier wird sie direckt alls m3u gespeichert
procedure TMeMPPlaylist.SaveAsM3U(aFilename: String);
var myList: tStringlist;
    i:integer;
    aAudiofile: TAudioFile;
begin
  myList := TStringList.Create;
  myList.Add('#EXTM3U');
  for i := 0 to fPlayList.Count - 1 do
  begin
    aAudiofile := fPlaylist[i] as TAudioFile;
    myList.add('#EXTINF:' + IntTostr(aAudiofile.Dauer) + ','
          + aAudioFile.Interpret + ' - ' + aAudioFile.Titel);
    myList.Add(ExtractRelativePath(aFilename, aAudioFile.Pfad ));
  end;
  myList.SaveToFile(afilename);
  FreeAndNil(myList);
end;

hathor 24. Aug 2010 12:17

AW: M3U Playlist Creator
 
Playlist Creator - Download geht nicht.

DiamondDog 16. Nov 2010 23:34

AW: M3U Playlist Creator
 
Zitat:

Zitat von hathor (Beitrag 1044520)
Playlist Creator - Download geht nicht.

Muss ich zustimmen, wäre super wenn jemand den Link fixen könnte.

s.h.a.r.k 16. Nov 2010 23:51

AW: M3U Playlist Creator
 
Da wird niemand den Link fixen können. Die Domain scheint tot zu sein und somit ist der Download wohl auch gestorben. Außer jemand hat das Ding noch.

Das kommt aber davon, wenn man meint extern hosten zu müssen -- I hate it!

himitsu 17. Nov 2010 09:38

AW: M3U Playlist Creator
 
Ihr könntet versuchen eine PN an toyoman zu schicken,
wenn dieser sich via eMail über den PN-Empfang informieren läßt, die Mail-Addy noch existiert, er darauf auch noch reagiert usw., dann könntet ihr Glück haben.
PS: Er war hier seit über einem Jahr nicht mehr online.

oder, man gehe auf www.google.de und suche dort mal nach "M3U Playlist Creator" (inkl. der Anführungszeichen) und habe Glück bei der Suche oder finde ein Alternativprodukt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:23 Uhr.

Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf