![]() |
Re: kleines CarPC Programm
Hi,
ist ein recht gutes Programm :thumb: Verbesserungsvorschläge: - Bau eine Titelleiste zum Verschieben ein - Stelle dem Benutzer die Schriftgröße frei - Speichern und Laden von ASX und M3U Listen So sieht ASX 3.0 aus:
Code:
M3U findest du über Google.
<ASX version="3.0">
<ENTRY><REF href="Pfad1" /></ENTRY> <ENTRY><REF href="Pfad2" /></ENTRY> <ENTRY><REF href="Pfad3" /></ENTRY> <ENTRY><REF href="Pfad4" /></ENTRY> </ASX> Da ich gerade viel Zeit habe:
Delphi-Quellcode:
Daraus kannst du dir einige Playlistenformate basteln :)
const
ASXStart = '<ASX version="3.0">'; ASXItemStart = '<ENTRY><REF href="'; ASXItemEnd = '" /></ENTRY>'; function TfrmMain.LoadASX(const asxfile : string):TDynStrArray; var lines : TStringList; music : TStringList; a, i, j : Integer; erstes, zweites : integer; p, line : String; const x : string = 'HREF'; begin lines := TStringList.Create(); lines.LoadFromFile(asxfile); music := TStringList.Create; for i := 0 to pred(lines.Count) do begin line := UpperCase(lines[i]); a := pos(x,line); if (a >= 1) then begin erstes := Pos('"', line)+1; zweites := PosEx('"', line, erstes); if zweites > erstes then begin p := copy(line,erstes,zweites - erstes); music.Add(p); end; end; end; lines.Free; setlength(result, music.count); for j := 0 to pred(music.count) do begin result[j] := music[j]; end; music.Free; end; procedure TfrmMain.SaveASX(Filename: string); var StringList: TStringList; i: integer; begin StringList := TStringlist.Create; try Stringlist.add(ASXStart); for i := 0 to length(ffiles) - 1 do begin Stringlist.add(ASXItemStart + ffiles[i].pfad + ASXItemEnd); end; Stringlist.Add('</ASX>'); Stringlist.SaveToFile(Filename); finally StringList.Free; end; end; Es ist sehr schön und gut, dass du die bass.dll (das hätte ich nicht im ersten Programm geschafft!) anstelle der MediaPlayer-Komponente oder sonstigen Komponenten benutzt wurden :) |
Re: kleines CarPC Programm
Zitat:
-Die Titelleiste war eigendlich drin, habe diese ja extra rausgenommen (siehe Antworten oben) -Die meisten Texte, wie sie auf den Buttons vorkommen, sind eigendlich Bilder(.jpg) Die Buttons bestehen aus drei Bildern (1.unberührt; 2.OnMouseOver; 3.MouseDown). Diese Bilder,sind im Skin-Ordner in den jeweiligen Rubriken in einer .ini deffiniert und zwar in Größe des Jpg, sowie x-y Position. Was als Label genutzt ist, findest du auch in der .ini wieder,dort kann man Schriftart,Größe,Farbe etc. einstellen. Ich dachte mir, ggf mal einen ordenlichen Skineditor zu schreiben, um für den User eine "saubere" Möglichkeit zu bieten,das Design anzupassen. Das ganze Auslagern war schon ein riesen Mehraufwand für den Anfang, wollte aber auf Dauer ein transparenteres Programm bieten. Ehrlich gesagt sind auch noch nicht alle Punkte die eigendlich möglich sind ausgelagert. - Das mit den .M3U -Listen wollte ich auch erst machen, habe dies leider nicht hinbekommen, der User hätte so auch schon vorhandene Winamp-Listen direkt einlesen können, habe jetzt erstmal eine einfache Art gewählt, die, was im Auto eigendlich nur wichtig ist, die Titel in Reihenfolge erfasst und dann in einem unverkennbarem Dateinamen, der auch auf der Festplatte sofort eine Datumsmäßige Ablage von neu nach alt auslagert. Natürlich kann der User den Namen der Playliste auch ändern, während der Fahrt wäre aber einer schon vorgegeben und man braucht keine Tastatur zum speichern. Die Tags werden ja ausgelesen und in einer Laufschrift dargestellt während der Wiedergabe, ein Ändern der Namen der Interpreten etc im Auto macht doch nicht so viel Sinn, oder? Nach langem Für-und Wieder hatte ich mich dazu entschieden, in den Listen die reelen Dateinamen zu halten und nur bei der Wiedergabe dann die Tags auszulesen. Man könnte vielleicht beim MouseOver des jeweiligen Listeneintrags ja als Hint irgendwie den ausgelesenen Interpreten,Titel etc sich anzeigen lassen... Wenn jemand etwas lesenswertes zu den M3U-Listen und ggf zur deren Einbindung hat, das würde mich sehr interessieren. Was kann ich denn den ASX Dateien noch abgewinnen? Arbeitet man damit heute viel, ausser im Internet die Streams zu erfassen ? Viele Grüße, bluescreen25 |
Re: kleines CarPC Programm
Mit ASX arbeitet man nicht viel, aber da ich sie oft benutze, dachte ich mir, ich könnte sie mal posten.
Da ich mit meinem Player bald fertig werde und gut drauf bin, hier der M3U-Code meines Players:
Delphi-Quellcode:
fFiles ist übrigens ein mit Audiodateipfaden und Tags gefülltes Array.
const
M3UStart = '#EXTM3U'; M3UItem = '#EXTINF:'; function TfrmMain.LoadM3U(filename : String): TDynStrArray; var g, music : TStringList; i: integer; begin g := TStringlist.Create; g.LoadFromFile(Filename); music := TStringList.Create; for i := 0 to g.Count - 1 do begin if g[i][1] <> '#' then begin music.Add(g[i]); end; end; g.Free; setlength(result, music.count); for i := 0 to pred(music.Count) do begin result[i] := music[i]; end; music.free; end; procedure TfrmMain.SaveM3U(Filename: string); var StringList: TStringList; i: integer; begin StringList := TStringlist.Create; try Stringlist.add(M3UStart); for i := 0 to length(ffiles) - 1 do begin Stringlist.add(M3UItem); Stringlist.add(ffiles[i].pfad); end; Stringlist.SaveToFile(Filename); finally StringList.Free; end; end; |
Re: kleines CarPC Programm
Zitat:
ja da kann ich nur Danke sagen ! Was für eine Art Player wird deiner sein ? Windows-WinAmp-Like oder DJ-Player ? Da gibt es ja unzählige Möglichkeiten. Stellt du deinen Player dann auch hier vor? Viele Grüße,bluescreen25 |
Re: kleines CarPC Programm
Ich werde ihn hier auch vorstellen, es ist ein ganz normaler Audio/Videoplayer, der halt ein paar Sachen besser macht, als viele Andere. Aber das gehört nicht in diesen Thread, kannst mich ja in den im Profil angegeben Messengern ansprechen, wenn du Näheres wissen willst.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:33 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz