Autor Beitrag
jakobwenzel
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1889
Erhaltene Danke: 1

XP home, ubuntu
BDS 2006 Prof
BeitragVerfasst: Mo 15.06.09 18:37 
Hallo zusammen!

Diese Unit ist dazu da um die Metadaten wie Titel oder Interpret die in M4A-Dateien enthalten sind auszulesen. Momentan sind alle Eigenschaften nur lesbar, schreiben wird sicherlich auch noch irgendwann kommen.
Generell ist diese Unit noch ziemlich experimentell (siehe Versionsnummer), was aber auch mit einer der Gründe ist, warum ich sie schon in einem so frühen Zustand veröffentliche: Die Spezifikationen die ich zum Format gefunden habe, waren Stellenweise etwas ungenau - und hier brauche ich eure Hilfe: Schaut euch mit dem Testprogramm bitte die Daten von einigen M4As an, und zwar von solchen die nach Möglichkeit nicht mit iTunes erstellt wurden und viele Sonderzeichen im Namen haben :mrgreen:

Die Unit ist nicht nur im Namen sondern auch in der Handhabung ziemlich ähnlich zu Gausis MP3FileUtils, nur dass es weniger Properties gibt und halt alles Read Only ist.

Außer den mitgelieferten Sachen braucht die Unit vor Delphi 2009 nur die TntWare Delphi Unicode Controls, um auch Dateien mit Unicode-Dateinamen lesen zu können (ansonsten gibt es eine FileNotFound-Meldung). Unter Delphi 2009 oder wenn keine Unicode-Unterstützung bei Dateinamen gebraucht wird kann das Define UseTnt auskommentiert werden. Unicode-Zeichen in den Tags können unabhängig davon immer gelesen werden


Changelog:
0.002: -Delphi-2009-Kompatiblität erhöht

Edit: Ich merk grad dass das Testprogramm nicht richtig funktioniert wenn mans nicht aus der IDE startet und keinen Parameter übergibt. Bis ich den Fehler gefunden hab deshalb bitte entweder aus der IDE starten oder einfach eine Datei auf die Exe ziehen.

mfg
jakobwenzel
Einloggen, um Attachments anzusehen!
_________________
I thought what I'd do was, I'd pretend I was one of those deaf-mutes.


Zuletzt bearbeitet von jakobwenzel am Mo 07.12.09 15:21, insgesamt 3-mal bearbeitet
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8535
Erhaltene Danke: 473

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Mo 15.06.09 20:49 
Hey, das ging ja fix. :zustimm:

Ich habe nur eine m4a-Datei, und die habe ich damals von user profile iconChristian S. bekommen, als der diese Funktion haben wollte. Da werden die Tags scheinbar ausgelesen - zumindest liefert auch Winamp nicht mehr (d.h. Artist und Titel). Aber wenn man mit Winamp ein paar Sachen mehr setzt, dann versteht die Unit das. Zum Auslesen taugt das also erstmal was. :D

Aber unter D2009 lässt sich das nicht kompilieren:

ausblenden Delphi-Quelltext
 
271:
{ ... }
name:=nameArr;


Fehlermeldung: Inkompatible Typen. Das eine ist ein String[4], das andere ein Array[1..4of Char - und das passt in D2009 nicht zusammen. Ein String[4] hat da ja 4 (+1) Bytes, ein Array[1..4] of Char 8. ;-)

Die ganzen Warnmeldungen bzgl. AnsiString/String/UnicodeString lass ich mal außen vor. ;-)

_________________
We are, we were and will not be.
jakobwenzel Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1889
Erhaltene Danke: 1

XP home, ubuntu
BDS 2006 Prof
BeitragVerfasst: Mo 15.06.09 22:04 
Argh stimmt, Char hat sich ja auch geändert...
Jetz sollte es passen :D

_________________
I thought what I'd do was, I'd pretend I was one of those deaf-mutes.
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Di 16.06.09 14:01 
user profile iconjakobwenzel hat folgendes geschrieben Zum zitierten Posting springen:
Generell ist diese Unit noch ziemlich experimentell (siehe Versionsnummer),

hmmm, Minor-Version ist gerade --> Muss stable sein :mrgreen:

user profile iconjakobwenzel hat folgendes geschrieben Zum zitierten Posting springen:
was aber auch mit einer der Gründe ist, warum ich sie schon in einem so frühen Zustand veröffentliche: Die Spezifikationen die ich zum Format gefunden habe, waren Stellenweise etwas ungenau - und hier brauche ich eure Hilfe: Schaut euch mit dem Testprogramm bitte die Daten von einigen M4As an, und zwar von solchen die nach Möglichkeit nicht mit iTunes erstellt wurden und viele Sonderzeichen im Namen haben :mrgreen:

Willst Du etwa der Realität ausweichen? ;-)

user profile iconjakobwenzel hat folgendes geschrieben Zum zitierten Posting springen:
Die Unit ist nicht nur im Namen sondern auch in der Handhabung ziemlich ähnlich zu Gausis MP3FileUtils, nur dass es weniger Properties gibt und halt alles Read Only ist.

Aber das ändert sich doch hoffentlich nocht?

Vielleicht könnte man ja eine MediaFileUtils-Unit abstrahieren ;-)

user profile iconjakobwenzel hat folgendes geschrieben Zum zitierten Posting springen:
Außer den mitgelieferten Sachen braucht die Unit vor Delphi 2009 nur die TntWare Delphi Unicode Controls. Unter Delphi 2009 oder wenn keine Unicode-Unterstützung bei Dateinamen gebraucht wird kann das Define UseTnt auskommentiert werden.

Unicode-Support über die nativen WideString-Funktionen wäre hier ein Stichwort. Auch wenn die TNTs sicherlich sehr gebräuchlich sind.

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
jakobwenzel Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1889
Erhaltene Danke: 1

XP home, ubuntu
BDS 2006 Prof
BeitragVerfasst: Di 16.06.09 15:30 
user profile iconBenBE hat folgendes geschrieben Zum zitierten Posting springen:
Willst Du etwa der Realität ausweichen? ;-)

Inwiefern?

user profile iconBenBE hat folgendes geschrieben Zum zitierten Posting springen:
Aber das ändert sich doch hoffentlich nocht?

Ich gehe davon aus :)

user profile iconBenBE hat folgendes geschrieben Zum zitierten Posting springen:
Vielleicht könnte man ja eine MediaFileUtils-Unit abstrahieren ;-)

Ja, man könnte

user profile iconBenBE hat folgendes geschrieben Zum zitierten Posting springen:
Unicode-Support über die nativen WideString-Funktionen wäre hier ein Stichwort. Auch wenn die TNTs sicherlich sehr gebräuchlich sind.

Ich brauch die nur für das Laden von Dateien mit so schönen Dateinamen wie "01 好調好調.m4a". Hat man die Datei erstmal als Stream geht alles mit den nativen Funktionen.

_________________
I thought what I'd do was, I'd pretend I was one of those deaf-mutes.
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8535
Erhaltene Danke: 473

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Di 16.06.09 15:39 
Ich schmeiß mal eine Runde Motivation für Schreibunterstützung in die Runde. Wäre sehr daran interessiert. :zwinker:

_________________
We are, we were and will not be.
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Di 16.06.09 17:18 
user profile iconjakobwenzel hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconBenBE hat folgendes geschrieben Zum zitierten Posting springen:
Willst Du etwa der Realität ausweichen? ;-)

Inwiefern?

Das war ein Scherz. Kann ja wohl nicht sein, dass man Dateien wie お元気ですか.m4a nicht öffnen kann. Also bitte! ;-)

user profile iconjakobwenzel hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconBenBE hat folgendes geschrieben Zum zitierten Posting springen:
Unicode-Support über die nativen WideString-Funktionen wäre hier ein Stichwort. Auch wenn die TNTs sicherlich sehr gebräuchlich sind.

Ich brauch die nur für das Laden von Dateien mit so schönen Dateinamen wie "01 好調好調.m4a". Hat man die Datei erstmal als Stream geht alles mit den nativen Funktionen.

Vielleicht kann das Dateisystem ja Punycode :mrgreen:

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
mad.scientist
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 17



BeitragVerfasst: Mo 07.12.09 01:14 
Hi jakobwenzel,

mein Held des heutigen Abends! :D

Ich begann schon, mich mit dem Gedanken anzufeinden, die M4A Tags den Fils selbst entreißen zu müssen, da fand ich doch noch diese zwar noch unreife, aber für mich (<> Unicode) blendend funktionierende Unit!

Einen Wunsch hätte ich aber noch -- lässt sich M4As die Länge (in Sekunden) entlocken? Die einzige alternative ist, die Datei zu öffnen (ich nutze das gute alte DSPack) -- geht zwar auch, ist aber lästig. :roll:

Grüße,
Florian
jakobwenzel Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1889
Erhaltene Danke: 1

XP home, ubuntu
BDS 2006 Prof
BeitragVerfasst: Mo 07.12.09 15:19 
user profile iconmad.scientist hat folgendes geschrieben Zum zitierten Posting springen:
mein Held des heutigen Abends! :D
Ich begann schon, mich mit dem Gedanken anzufeinden, die M4A Tags den Fils selbst entreißen zu müssen, da fand ich doch noch diese zwar noch unreife, aber für mich (<> Unicode) blendend funktionierende Unit!

Danke für das Lob!

user profile iconmad.scientist hat folgendes geschrieben Zum zitierten Posting springen:
Einen Wunsch hätte ich aber noch -- lässt sich M4As die Länge (in Sekunden) entlocken? Die einzige alternative ist, die Datei zu öffnen (ich nutze das gute alte DSPack) -- geht zwar auch, ist aber lästig. :roll:

Die Dokumentation die ich bis jetzt gefunden hab sagt leider nix von der Länge...

@All: Ich hab komplett vergessen am Schreiben von Tags weiterzumachen, kommt bald... ;)

_________________
I thought what I'd do was, I'd pretend I was one of those deaf-mutes.
mad.scientist
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 17



BeitragVerfasst: Do 10.12.09 00:26 
Hier

search.cpan.org/~jhar/MP4-Info/Info.pm

gibt es ein Perl-Script, dass die kompletten Tags & Meta-Infos aus MP4 und M4A-Files extrahiert. Nur, dass ich von Perl so gar keine Ahnung habe. Aber vielleicht kannst Du aus dem Vergleich mit Deiner Quelle etwas reverse-engineeren ... :?

Herzliche Grüße,
Florian