Autor Beitrag
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8431
Erhaltene Danke: 439

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.2 CE
BeitragVerfasst: So 03.02.08 21:03 
Ein Tutorial zur Programmierung eines Mp3-Players. Schritt für Schritt wird erläutert, wie man einen Mp3-Player halbwegs sauber aufbauen kann, so dass der Code übersichtlich und erweiterbar bleibt.

Es richtet sich an Delphi-Programmierer, die schon etwas Erfahrung mit Delphi gesammelt haben und sich nun an ein neues, etwas größeres Projekt wagen wollen.

Getestet wurde es mit Delphi 7 Personal und Turbo Delphi Explorer 2006.

Auf folgende Punkte wird im Tutorial eingegangen:
  • Informationen in Audiodateien. Was stecken in mp3- und anderen Dateien für Informationen drin und wie kann man sie auslesen und für einen Player passend zusammenfassen?
  • Abspielen mit der bass.dll. Wie spielt man eine Datei mit der bass.dll ab - grundlegende Steuerung des Players.
  • Events. Wie bekommt man mit, wann ein Lied zu Ende ist, und wie reagiert man darauf?
  • Das Plugin-System der bass.dll. Hinzufügen weitere Formate wie wma, ape, flac und einige weitere.
  • Eine Playlist. Wie kann man eine Playlist bauen, die von vorne bis hinten durchläuft?
  • Visualisierung. Wie kann man diese auf- und abhüpfenden Balken bekommen, die man überall sieht?

Nach jedem Kapitel wird ein kleines Programm fortgeführt, was das Ganze in der Praxis zeigt. Nach und nach entseht so ein kleiner aber feiner Player, den man durchaus schon benutzen kann. Am Ende des Tutorials sieht der Player dann in etwa so aus:

user defined image


Das Tutorial kann auf meiner Webseite online gelesen werden (www.gausi.de/delphi/memp) oder als PDF heruntergeladen werden. Zusätzlich gibt es ein zip-Archiv mit dem Quellcode.

Dieses Tutorial hat beim Tutorial-Wettbewerb 2007 von Delphi-Treff.de mitgemacht und ist da unter die Top 10 gekommen. (:mrgreen:)

Edit: 14.05.2008: Anhänge aktualisiert auf Version 2.4 der Bass.dll
Einloggen, um Attachments anzusehen!
_________________
Oel ngati kameie.


Zuletzt bearbeitet von Gausi am Mi 14.05.08 20:27, insgesamt 1-mal bearbeitet

Für diesen Beitrag haben gedankt: Xion
Christian V.
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 311

Win Xp Prof
Turbo Delphi 2005
BeitragVerfasst: Di 12.02.08 19:19 
Danke vielmals für dieses Tutorial und deine Mühen. Das werde ich sicher in den nächsten Ferien durcharbeiten.

_________________
Hardware runs the world, software controls the hardware, code generates software - Have You already coded today?
Yogu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: Mi 20.02.08 20:34 
Ah, jetzt ist es da ;)

Ich habe schon seit längerer Zeit eine Version des Tutorials, und es war wirklich einfach und informativ :zustimm:

Ich kann allen, die gerade überlegen, ob sie das Tutorial durchmachen wollen, nur empfehlen dies zu tun. Ihr werdet am Ende den Player so gut verstanden haben, um ihn nach eurem Wunsch zu erweitertn bzw. einen komplett eigenen Player zu schreiben, der genau diese Features hat.

Grüße,
Yogu
Gausi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8431
Erhaltene Danke: 439

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.2 CE
BeitragVerfasst: Mi 14.05.08 20:39 
Vor einiger Zeit kam eine neue Version der Bass.dll (2.4) raus. Wer es noch nicht gemerkt hat - mit der neuen ließ sich MeMP nicht compilieren, da einige Funktionen umbenannt und/oder erweitert wurden. Und wer das dann hinbekommen hat, wird sich über die nicht funktionierende Lautstärke gewundert haben. Das wurde jetzt alles behoben - jetzt lässt es sich nicht mit der alten (2.3) kompilieren.

Ich hoffe, ich habe dabei nichts vergessen und Webseite, PDF und Code sind konsistent. :mrgreen:

_________________
Oel ngati kameie.
HHDS
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 18

Win 98, Win XP Home
Delphi 7 Personal
BeitragVerfasst: Fr 23.05.08 22:26 
Also Ich hab ir mal das komplette MeMP Tutorial downloaded und hab einen kleinen Feheler entdeckt bzw. ich hab etwas versteckt was ich nicht ganz begreife: Die Projekt-Datei lässt sich nicht kompilieren, weil die dcu datei fehlt. Das Tut find ich nicht ganz verständlich, aber naja ok.
Gausi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8431
Erhaltene Danke: 439

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.2 CE
BeitragVerfasst: Sa 24.05.08 10:49 
Na...da stellt sich die Frage welche dcu fehlt. Ich tippe einfach mal auf Mp3FileUtils.dcu oder ATL_WMAFile.dcu. Das sind zwei Zusatz-Units, die man sich zusätzlich runterladen muss und am einfachsten in den Projektordner reinkopiert. Evtl. muss man die beiden Units auch erst öffnen und einmal kompilieren, dann sind die Dcus da.

_________________
Oel ngati kameie.
j.klugmann
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Do 10.07.08 21:26 
wenn ich mit der memp klasse angefangen habe und ich versuche zustarten dann ziegt er mir hunderte fehler an.er kennt proceduren und funktionen nicht.jetzt nehme ich an das ich eine unit einbinden
muss oder eine dll,aber welche? :?:
PS:Sonst finde ich das tut sher gut. :o
Yogu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: Do 10.07.08 21:29 
user profile iconj.klugmann hat folgendes geschrieben:
jetzt nehme ich an das ich eine unit einbinden
muss oder eine dll,aber welche? :?:

Hast du MP3FileUtils eingebunden? Diese Unit beinhaltet alles, was mit den ID3-Tags zusammenhängt. Sollten Fehler bei der Wiedergabe etc. auftreten, hast du wahrscheinlich bass vergessen.
j.klugmann
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 11.07.08 20:40 
nein hat sich erledigt dafür habe ich neues problem:
-ich habe jetzt alles deklariert von der memp-klasse und ein paar features eingebaut.
Aber jetzt kann ich nichts mehr abspielen da kommt ne zugriffsverletzung.
was jetzt?Bin ratlos.