Autor Beitrag
AnCorr
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Fr 28.05.10 13:02 
Hallo zusammen

Zuerst moechte ich mich gaaaaaaaaaaaanz kurz vorstellen:
Maennlich
47 Jahre
10 Jahre Schreiner
Seit 1992 'Datentechnischer Assistent'
'Hobbyprogrammierer'

Nachdem ich ca. 10 Jahre Pause in Bezug auf das Programmieren mit Delphi gemacht habe, habe ich vor ein paar Wochen wieder angefangen (so richtig). Ich habe mir zwar im letzten Jahr schon Delphi 2009 gekauft, aber nicht viel damit gemacht.
Seit April habe ich nun Delphi 2010 und habe mich gleich an mehrere 'Kleinprojekte' gemacht.
Bisher funktionieren alle 'schon mal', aber so richtig fertig ist keines. Aber das ist bei mir eigentlich normal, wenn es um solche Dinge geht, da ich immer wieder neue Ideen habe, und dann wird ein Programm 'halt schnell mal' erweitert.

Nun zu meinem aktuellen Projekt.
Nachdem ich schon lange ganz bestimmte Dinge schon immer gerne bei einem Media(Audio)-Player gesehen haette, aber nie gefunden habe, habe ich mich nun endlich entschlossen, meinen, auf meine Beduerfnisse zugeschnittenen Player zu programmieren.
So richtig 'angefeuert' wurde ich davon, dass ich mir zu meinem seit laengerem bestehenden TwonkyVision MediaServer auch die passenden Empfangsgeraete (Noxon Audio etc.) angeschafft habe.

Nachdem ich mit dem Player jetzt nicht nur mehr Mp3 Dateien, sondern auch 'Internet Radio Streams' abspielen kann - BASS.DLL sei Dank - suche ich einen neuen Namen fuer meinen Player.
Der bisherige Name lautete: Mp3Player NG
Ich habe mir verschiedene Namen ausgesucht, und im Internet gesucht, ob es meine Auswahl noch 'frei' ist. Ich wollte (moechte) sicherstellen, dass nicht schon ein Name besteht, und ich evtl. Probleme bekommen koennte.
Nun habe ich zwei Namen zur Auswahl:
XLZyst
GaeRIuM


Beide Namen haben einen ganz bestimmten Hintergrund und stellen quasi eine Art 'Uebersetzung' dar.

Ich wuerde mich freuen, wenn Ihr mir bei der Wahl des Namens behilflich sein koenntet.

Gut, nun wollt ihr sicher alle wissen, was ich denn da programmiert habe.
Die Hilfe zu dem Programm ist noch nicht ganz fertig, aber hier ein Auszug aus der Beschreibung (in der enthaltenen 'History.txt' Datei finden sich weitere Informationen):
· Abspielen von Liedern, kategorisiert, basierend auf Informationen welche in einer SQLite3 Datenbank gespeichert werden
· Analysiert Ihre Dateien und speichert die Information in der Datenbank
· Internet Radio
· Laden von einzelnen oder mehreren Dateien
· Laden und Speichern von Abspiellisten (.m3u)
· Laden von Dateien aus einem Ordner inklusive aller Unterordner
· Belegen von 'Stationstasten'
· Abspeichern von 'Favoriten'
· Sortieren der Abspielliste nach den vorhandenen Spalten
· 'Echte Zufallsfunktion'
· Wiedergabe einer zufaelligen Auswahl aus 'Album', 'Interpret', 'Stil' und 'Jahr'
· Wiedergabe durch Auswahl eines Verzeichnises
· Wiederholen eines einzelnen Liedes oder der gesamten Abspielliste
· Abspeichern des aktuellen Standes
· 'Coverview' (in Bearbeitung)


Ich habe schon viele 'kleinere Tools' programmiert, bin aber bisher damit nie an die 'Oeffentlichkeit' gegangen.
In meinem Kollegen- u. Freundeskreis ist der Player sehr gut angekommen. Deswegen wende ich mich jetzt an euch.

Das Programm ist zwar kein OpenSource, aber Freeware.
Ihr koennt es von meiner privaten Webseite herunterladen.

Wer Lust hat, kann sich ja gerne dort ein wenig umsehen. :)

Link: MSchlereth.de
Ein Bild von der 'Hauptansicht':
user defined image


Eine weitere Variante:
user defined image

Gruss
AnCorr

P.S.: Bevor jetzt jemand sagt: "Das habe ich doch schon woanders gelesen" :-)
Ich habe das auch schon bei 'Delphi-Praxis' eingestellt. Leider war das Feedback in Bezug auf die Namensuche nicht so gross. Ich suche also immer noch. Ausserdem sind hier bestimmt auch Mitglieder, welche dort nicht sind, und wuerden so nichts von meinem Programm wissen.
Ich hoffe, das geht fuer alle in Ordnung. :-)


Zuletzt bearbeitet von AnCorr am Do 10.06.10 15:20, insgesamt 4-mal bearbeitet
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8548
Erhaltene Danke: 477

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Fr 28.05.10 14:02 
Klar geht das in Ordnung. :D

Aber wenn es nur um den Namen geht: Der bleibt doch völlig dir überlassen. Wenn man Google vertrauen kann, gibt es bisher weder XLZyst noch GaeRIuM in irgendeiner Form. Wäre das eine Marke, würde es meiner Meinung nach mindestens einen Treffer geben - gibt es aber nicht.

XLZyst klingt für mich irgendwie nach einer Krankheit oder einem Medikament dagegen. Ansonsten klingt das XL nach "extra groß", was auf mich in Bezug auf Software eher arrogant und abstoßend wirkt. Zumindest dann, wenn das Programm noch nicht ausgereift ist, was bei dem Player leider recht deutlich der Fall ist. In diese Kerbe schlägt auch das "mp3 player of a new generation" im About-Dialog.

Mit GaeRIuM kann ich so gar nichts anfangen. Klingt lateinisch, aber was das heißen soll, ist mir nicht klar.

Zu dem Player selbst: Die Anzeige des Titels wirkt unaufgeräumt und nicht übersichtlich. Warum steht z.B. die Lautstärke gleichberechtigt mit den Titelinfos in dem Fenster? Warum sind da lauter Einzelfenster, die auch nicht aneinander andocken? Warum wird das Cover da so in die Ecke gequetscht, wenn man dafür prima den ansonsten sinnfreien Lautsprecher nehmen könnte?

Meldungen wie "Dateien wurden erfolgreich in die Playlist eingefügt" sind auch einfach nur nervig. Für Debugging-Zwecke mag das der Programmierer sicherlich interessant finden, dem User ist das egal. Der will nur wissen, wenn etwas nicht geklappt hat. ;-)

Und wenn die Playlist leer ist, kann ich die nicht anzeigen lassen, einen Button zum Hinzufügen finde ich auch nicht, es geht nur Drag&Drop.

Auch mit dem Medienmanagement komme ich nicht klar. Da bekomme ich regelmäßig Exceptions, wenn ich z.B. oben einmal auf Browse klicke und den Dialog abbreche. Danach kann ich klicken was ich will, es kommt immer eine AccessViolation oder ähnliches. :(

Für den Anfang nicht schlecht, aber an GUI-Design und Bedienung muss noch ne Menge getan werden, denke ich. ;-)

Ansonsten zum Namen: Der muss einem selbst einfallen, und man muss ihn auf Anhieb klasse finden - dann ist er richtig. Den Namen für meinen Player habe ich auch nicht lange und umständlich gesucht - der war irgendwann an einer roten Ampel/unter Dusche/auf dem Klo einfach da. :zwinker:

_________________
We are, we were and will not be.
AnCorr Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Fr 28.05.10 15:01 
Hallo Gausi

Danke fuer die 'Erlaubnis'.

Zum Namen: Wie schon gesagt, haben beide einen bestimmten Hintergrund. Beide sind sie in einer bestimmten Weise Abkuerzungen, die zusammen das beschreiben, was der Player tut. XLZyst ist dabei eine Abkuerzung aus chinesischen Worten, GaeRIuM dabei eine aus deutschen Worten. Dass man zur Zeit beide Begriffe noch nicht ueber Google finden kann, war ja beabsichtigt. Ich wollte einfach vermeiden, dass man mir vielleicht wegen einer Namensvergabe 'an den Karren faehrt'. Man weiss ja nie. :-)

Das XL hat dabei gar nichts mit 'Extra Large' zu tun. Im Gegenteil, ich bin eher zurueckhaltend wenn es bestimmte Dinge geht.
Das gilt z. B. auch fuer die Angabe 'Mp3 player of a new generation'. Es bedeutet einfach, dass ich mit bestimmten Funktionen des Players einen neuen Weg gehe. (zumindest, was ich von den bekanntesten Programmen her kenne)

Nun zur Optik: Design ist Geschmacksache, und um Geschmack laesst sich bekanntlicher Weise streiten, was ich hier aber beim besten Willen nicht machen will.
Jeder hat eben einen anderen Geschmack, und das ist auch gut so.
Fuer mich ist in erster Hinsicht die Funktionalitaet am wichtigsten, und nicht das Design. Mit dem Design, und auch in Bezug auf manche Funktionalitaeten (z. B. Stationstasten) moechte ich ein 'gewoehnliches (Internet-)Radio' nachahmen. Das gilt auch fuer den Aufbau der Anzeige - abgesehen von dem Cover (was beim 'Cube' aber ein eigenes Panel hat).


Ich arbeite erst seit ein paar Wochen an dem Programm. Dass es noch nicht fehlerfrei ist, ist mir schon klar. Manche Fehler kommen ja auch erst beim 'echten' Testen, und ich bin ueber jeden Hinweis dankbar.
Das mit der 'Accoess violation' werde ich mir heute Abend natuerlich gleich anschauen.

Mit dem Hinweis nach dem Einfuegen von Dateien stimme ich dir zu. Ich werde das entsprechend aendern.


Gruss
AnCorr
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8548
Erhaltene Danke: 477

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Fr 28.05.10 15:13 
Nur der Klarheit wegen: Mit "Design" meinte ich nicht die Farben und die Bildchen auf den Buttons. Darüber lässt sich wirklich lange streiten, ohne das was dabei rumkommt.

Aber über das grundlegende GUI-Design schon. Denn da kann man relativ klar sagen, was "intuitiv klar" ist, weil der typische Windows-Nutzer gewisse Bedienkonzepte kennt und erlernt hat. Und dazu gehört auch eine mehr oder weniger klare optische Trennung zwischen Dingen, die inhaltlich unterschiedlich sind. Und deswegen gehört z.B. die Anzeige von Titel und Lautstärke getrennt.
Auch kann man sich fragen, ob die Anzeige der Bitrate wirklich genauso wichtig ist wie der Titel. Klar, man möchte ja auch zeigen, was man alles tolles programmieren kann (kenn ich auch aus eigener Erfahrung), aber unbedingt sinnvoll ist das nicht. :nixweiss:

Bei einem Player darf (und soll) man imho gerne etwas von den Standards abweichen. Aber nicht zuweit, denn sonst wird das Programm unbedienbar. ;-)

Aber wenn du wirklich erst seit einigen Wochen daran arbeitest: Respekt. Dafür ist das schon sehr ordentlich. :D

_________________
We are, we were and will not be.
AnCorr Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Fr 28.05.10 15:59 
Hallo Gausi

Danke fuer das Lob in Bezug auf die bisherige 'Entwicklungszeit' und dem erreichten Stand. :-)


Nun zu dem Problem 'Zugriffsverletzung'.
Ich habe das nun nachgestellt, und herausgefunden, dass es daher kommt, dass ich nach dem Oeffnen des Dialoges dessen Ressourcen wieder frei gebe.
Z. B.:
if OpenDialog1.Execute then
myPath := OpenDialog1.Filename;
OpenDialog1.Free;

Mache ich das nicht, kann ich im Taskmanaager zusehen, wie der Speicherbedarf der Anwendung kontinuierlich steigt. Nicht viel, aber 'unschoen'.

Ich habe mich diesbezueglich im Internet schon 'totgesucht', aber nichts konkretes gefunden.

Ich habe die Angabe nun in das 'Form.Destroy' Ereignis gesetzt.

Hier stellt sich mir die Frage: Wann gebe ich von Open- und Save-Dialog genutzte Ressourcen am besten wieder frei?


Gruss
AnCorr
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8548
Erhaltene Danke: 477

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Fr 28.05.10 16:03 
Das gehört zwar nicht in die Sparte, aber einen TOpenDialog, der als Komponente auf der Form liegt, gibt man nirgendwo frei. Das passiert beim Beenden des Programms automatisch.

Wenn der Speicherbedarf dabei ansteigt, liegt das Problem vermutlich woanders. Das wäre aber was für ein eigenes Topic. ;-)

_________________
We are, we were and will not be.
AnCorr Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Fr 28.05.10 17:01 
Hallo Gausi

Danke fuer die Antwort.

Das mit dem Speicherbedarf bezieht sich nur auf den/die (Open- und Save) Dialoge. Damit meine ich, dass bei jedem Oeffnen eines der Dialoge etwas Speicher genutzt wird - das kann man im Taskmanager beobachten - dieser aber nicht mehr freigegeben wird. (sind 'nur ein paar' Kilobyte).
Ich habe kein Problem mit dem Speicherbedarf meines Programmes im Allgemeinen, es ging mir nur um das generelle Vorgehen.

Gut, nachdem ich die Anweisungen ja aus den eigentlichen Routinen herausgenommen habe, tritt der Fehler mit der 'Zugriffsverletzung' nicht mehr auf.
Dabei hatte ich dann aber noch einen anderen Fehler entdeckt, den ich natuerlich gleich behoben habe. :-)
Ich habe von beiden Playern eine neue Version auf meinen Server kopiert.


Gruss
Micha
AnCorr Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Fr 28.05.10 20:13 
Hallo Gausi

Eines moechte ich noch UNBEDINGT loswerden:
Erst einmal VIELEN DANK fuer deine Mp3FileUtils, welche im meinem Player naemlich auch zum Einsatz kommen!
Vor lauter Antworten und Fehlerbehebungen hatte ich das bisher vergessen.

Ich hatte mir verschiedene Komponenten zum Auslesen/Bearbeiten der Id3Tags angeschaut, aber deine waren die einzigen, mit denen ich relativ schnell das hatte, was ich fuer mich benoetigte.
Ein grosses Lob somit auch an dich, denn das spricht fuer die Einfachheit der Nutzung deiner Komponenten. :zustimm:

Ich bin zwar im Laufe der Entwicklung meines Players auf zwei Probleme gestossen, habe die aber 'fuer mich intern' behoben.
Bei einer meiner Mp3-Dateien wurde als Laenge ca. 20 Minuten ausgelesen, wobei die tatsaechliche Laenge aber nur etwa 5 Minuten waren. Das wurde mir auch von Winamp und MS Media Player so angezeigt. Ich habe die Datei dann einfach noch mal von der CD gerippt, und danach ging es.
Das zweite Problem trat auf, als ich eine Datei abspielen wollte, die ich von einem Musikvideo, welches ich ueber Satelitenfernsehen aufgenommen und 'abgetrennt' hatte. Hier bekam ich eine Fehlermeldung in Bezug auf ein JPEG Objekt (oder so aehnlich), obwohl in der Datei kein Cover enthalten war(ist).
Ich habe dann im Code der Mp3FileUtils.pas um den Aufruf, bei dem der Fehler auftrat, ein 'try...except..end' Konstrukt gesetzt, und die agefragte Variable auf 0 gesetzt. Das 'Fehlen' der eingentlich angeforderten Daten hat dann aber keine weitere Auswirkung auf den Ablauf und auch dem Abspielen der Datei.
Wenn Du moechtest, kann ich dir die entsprechende Stelle ja irgendwie zukommen lassen.
Trotzdem, noch einmal Danke fuer die Units.

Gruss
AnCorr