|
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Dusky_Joe
Anmeldungsdatum: 07.01.2005 Beiträge: 1007 Wohnort: Regensburg/Oberpfalz
|
Verfasst am: 02.07.2006, 17:59 Titel: API: ID3-Tags von MP3 u.ä. auslesen |
|
|
Hi Leute!
Ich bin gerade daran, eine Medialib zu schreiben. Das Programm durchsucht einen Ordner incl. Unterordner nach Daten mit best. Erweiterung (z.B. MP3, WMA, ...). Die erstellte Liste wird anschließend auf Doppelte bzw. ähnliche Dateinamen analysiert.
Bei dieser Doubletten-Suche wollte ich auch optional die ID3-Tags (also die Medieninformationen wie Interpret, Titel, Album, Spieldauer, ...) vergleichen.
Welche Declare's sind nötig, um diese vier Informationen bei gegebenem Dateinamen mit Pfad zu erfahren? Bzw. wie "bedient" man die entsprechenden APIs?
Danke für eure Mühen.
Sobald ich eine beta-Version habe, werde ich diese ins Projekt-Forum posten.
(Geschätzter Zeitbedarf bis zum first release: 2-4 Wochen.)
Eine Nennung in den Credits ist selbstverständlich auch mit dabei
Have a nice day
Ciao
Dusky_Joe _________________ fully biological degradable
Once, the big wave arrives, you've got two ways, you can go:
Either, you ride it, or you don't do.
But, if you don't ride, you'll never know wether you'd have gone wet. |
|
Nach oben |
|
|
ytwinky
Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 02.07.2006, 20:08 Titel: |
|
|
Hi Dusky_Joe,
da ich weiß, daß du ein halber Engländer bist( ) scheue ich mich nicht,
diesen Link zu posten:
http://id3lib.sourceforge.net/
Ich hatte eigentlich gedacht, daß es einfacher sei, ID3-Tags auszulesen..
..Irrtum meinerseits
Vllt. hast du da ja noch nicht geschaut, aber ich bin fest überzeugt, daß du auch googeln kannst
Bin mal gespannt, was bei deinem Projekt herauskommt.
(Ich benutze übrigens MP3-Tag)
Gruß
ytwinky _________________
v1ctor hat Folgendes geschrieben: | Yeah, i like INPUT$(n) as much as PRINT USING.. | ..also ungefähr so, wie ich GOTO.. |
|
Nach oben |
|
|
Dusky_Joe
Anmeldungsdatum: 07.01.2005 Beiträge: 1007 Wohnort: Regensburg/Oberpfalz
|
Verfasst am: 08.07.2006, 11:01 Titel: |
|
|
Hmm... looks pretty good. Unfortunately, I'm unable to download the file right now, some pages can't be found... and, when trying to load them again, to be found immediately...
Soviel wohl zu halber Engländer
However, warte noch 1-2 Jahre, dann versuch ich's vllt sogar mal mit Französisch... _________________ fully biological degradable
Once, the big wave arrives, you've got two ways, you can go:
Either, you ride it, or you don't do.
But, if you don't ride, you'll never know wether you'd have gone wet. |
|
Nach oben |
|
|
ytwinky
Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 08.07.2006, 16:08 Titel: |
|
|
Il y a quelques personnes qui parlent francais, au moins DevilKevin et moi
[Edit]
Oh, je crois jb aussi, merci..
Salut
ytwinky _________________
v1ctor hat Folgendes geschrieben: | Yeah, i like INPUT$(n) as much as PRINT USING.. | ..also ungefähr so, wie ich GOTO..
Zuletzt bearbeitet von ytwinky am 10.07.2006, 16:35, insgesamt einmal bearbeitet |
|
Nach oben |
|
|
Dusky_Joe
Anmeldungsdatum: 07.01.2005 Beiträge: 1007 Wohnort: Regensburg/Oberpfalz
|
Verfasst am: 08.07.2006, 18:05 Titel: |
|
|
Ach, gleich mehrere? Dann wirds ja Zeit, dass ich endlich auch zum "Club der Auserwählten" komme, wie?
However, zurzeit kann ich nicht genügen Ressourcen freigeben, um French zu installieren - und so leicht wie in MATRIX geht's ja leider nicht...
Have a nice day
Ciao _________________ fully biological degradable
Once, the big wave arrives, you've got two ways, you can go:
Either, you ride it, or you don't do.
But, if you don't ride, you'll never know wether you'd have gone wet. |
|
Nach oben |
|
|
ytwinky
Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 08.07.2006, 18:52 Titel: |
|
|
Ach, da wir gerade bei Fremdsprachen sind:
CIAO ist eine Grußformel in einer mir unbekannten Sprache
Kann sein, daß das mit der WM zusammenhängt
Gruß
ytwinky _________________
v1ctor hat Folgendes geschrieben: | Yeah, i like INPUT$(n) as much as PRINT USING.. | ..also ungefähr so, wie ich GOTO.. |
|
Nach oben |
|
|
Dusky_Joe
Anmeldungsdatum: 07.01.2005 Beiträge: 1007 Wohnort: Regensburg/Oberpfalz
|
Verfasst am: 09.07.2006, 15:00 Titel: |
|
|
Och bitte, komm doch jetzt nicht mit diesem Werbemonster! Kann sein, dass es einfach daran liegt, dass ich für Fußball sowiso nicht besonders viel übrig habe, aber die ganzen Fahnen-schwenkenden Fanmassen mit ihrer Neandertalerähnlichen Sprache ("oleee, oleee! Berlin, Berlin, wir fahren nach Berlin! Schwaaaaaaarz und Weeeeiiiß, wir stehn auf eurer Seite, ...")
Nicht dass ich etwas gegen Fangesänge und Freude am Sport hätte, aber wenn man dann die Frechheit besitzt, laut zu sagen, dass man von Fußball nicht besonders begeistert ist, wird man von vielen angeschaut wie aus einer anderen Welt. Und es gab in den letzten Wochen schon genug Leute, die mich dazu zwingen wollten, ein Spiel anzusehen...erfolglos
However, ob sie uns jetzt besiegt haben, oder nicht, ob sie jetzt an irgendeinem pseudo-skandal beteiligt sind oder nicht, ich bleibe bei meiner klassischen Grußformel.
(Nicht ohne Grund haben mir schon ein paar Leute gesagt, rein vom Hauttyp könnte ich auch Italiener, Türke, o.ä. sein)
Ein Hoch auf die Fans, die sich wirklich nur über den Sport gefreut haben, keinen Ärger gemacht haben, und Leute wie mich dabei in Ruhe gelassen haben!
Have a nice day
Ciao! _________________ fully biological degradable
Once, the big wave arrives, you've got two ways, you can go:
Either, you ride it, or you don't do.
But, if you don't ride, you'll never know wether you'd have gone wet. |
|
Nach oben |
|
|
jb
Anmeldungsdatum: 14.01.2005 Beiträge: 2010
|
Verfasst am: 10.07.2006, 15:10 Titel: |
|
|
ytwinky hat Folgendes geschrieben: | Il y a quelque personnes qui parlent francais, au moins DevilKevin et moi |
Bin ich bekloppt oder muss hinter das quelque ein s?
jb _________________ Elektronik und Programmieren |
|
Nach oben |
|
|
ytwinky
Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 11.07.2006, 11:07 Titel: |
|
|
Hi Dusky_Joe,
zu Informationen über das Auslesen von ID3-Tags kannste ja auch mal hier stöbern..
Nachdem ein gewisser Herr, dessen Namen ich hier nicht nennen will, verraten hat, was jeder wußte, nämlich, daß ich auch AutoIt3 verwende ,
ist es für mich kein Problem mehr, das auch zuzugeben..
[PetzModus]
Manuel macht auch AutoIt3
[/PetzModus]
Die genannte DLL kommt allerdings ohne Doku, da ist experimentieren angesagt..
..die WikipediaSeite kennst du bestimmt schon.
Ich werde mir die AutoIt-Skripts mal anschauen und sehen, ob die sich nach FreeBASIC transen lassen.
@jb:
As tu déja vu?
J'ai corrigé la faute..
Gruß
ytwinky _________________
v1ctor hat Folgendes geschrieben: | Yeah, i like INPUT$(n) as much as PRINT USING.. | ..also ungefähr so, wie ich GOTO.. |
|
Nach oben |
|
|
Sebastian Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
|
ytwinky
Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 11.07.2006, 19:12 Titel: |
|
|
@Sebastian,
Besser spät, als nie..
Wenn es schon Code in (V)Basic gibt, um die ID3-Tags anzuzeigen, dann spar ich mir doch das Getranse..
..also war es nicht zu zu spät, sondern rechtzeitig(nämlich bevor ich angefangen hab )
Gruß
ytwinky _________________
v1ctor hat Folgendes geschrieben: | Yeah, i like INPUT$(n) as much as PRINT USING.. | ..also ungefähr so, wie ich GOTO.. |
|
Nach oben |
|
|
Sebastian Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
Verfasst am: 11.07.2006, 21:05 Titel: |
|
|
Code: | '
' Beispielcode fürs Auslesen und Schreiben eines id3v1 Tags aus einer MP3-Datei
' für FreeBASIC, getestet mit v0.16 stable für Windows (11.07.2006)
'
' Auf Basis des ActiveVB Tipps Nr. 483
' von Sebastian Steiner, sebastian{unterstrich}steiner(ätt)gmx[punkt]de,
' http://www.sebastian-steiner.de/
'
' Dieser Source kann frei verwendet werden. Für eventuelle Schäden
' wird nicht gehaftet.
'
Type TagInfo
TAG As String * 3
Songname As String * 30
artist As String * 30
album As String * 30
year As String * 4
comment As String * 30
genre As String * 1
End Type
declare function GET_ID3V1TAG(FilePath as string, TAG As TagInfo) as integer
declare sub PUT_ID3V1TAG(FilePath as string, TAG As TagInfo)
DIM result as integer
Dim Datei as string
DIM id3tag as TagInfo
Datei = "yvan.mp3"
result=GET_ID3V1TAG(Datei,id3tag)
CLS
PRINT
PRINT " ID3v1 Tag der MP3-Datei ";
COLOR 10
PRINT Datei
COLOR 7
PRINT
IF result=0 THEN
COLOR 12
PRINT "Auslesen fehlgeschlagen!"
COLOR 7
SLEEP: END
END IF
PRINT " Songname: "; id3tag.Songname
PRINT " Interpret: "; id3tag.Artist
PRINT " Album: "; id3tag.Album
PRINT " Jahr: "; id3tag.year
PRINT " Kommentar: "; id3tag.comment
PRINT " Genre Nr. "; ASC(id3tag.genre)
PRINT
SLEEP: END
function GET_ID3V1TAG(FilePath as string, TAG As TagInfo) as integer
Dim FNum as uinteger
With TAG
FNum = FreeFile
Open FilePath For Binary As #FNum
Get #FNum, LOF(FNum) - 127, .TAG
If .TAG <> "TAG" Then
GET_ID3V1TAG = 0
Close #FNum
Exit function
End If
Get #FNum, , .Songname
Get #FNum, , .artist
Get #FNum, , .album
Get #FNum, , .year
Get #FNum, , .comment
Get #FNum, , .genre
Close #FNum
GET_ID3V1TAG = 1
End With
End Function
sub PUT_ID3V1TAG(FilePath as string, TAG As TagInfo)
Dim FNum as uinteger
dim TPos as uinteger
With TAG
FNum = FreeFile
Open FilePath For Binary As #FNum
TPos = LOF(FNum)
Get #FNum, TPos - 127, .TAG
If .TAG = "TAG" Then TPos = TPos - 127
.TAG = "TAG"
Put #FNum, TPos, TAG
Close #FNum
End With
End Sub |
Viel Spaß damit! _________________
Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen! |
|
Nach oben |
|
|
jb
Anmeldungsdatum: 14.01.2005 Beiträge: 2010
|
Verfasst am: 12.07.2006, 16:58 Titel: |
|
|
ytwinky hat Folgendes geschrieben: | @jb:
As tu déja vu?
J'ai corrigé la faute..
Gruß
ytwinky |
Mais oui, Monsieur
jb _________________ Elektronik und Programmieren |
|
Nach oben |
|
|
Dusky_Joe
Anmeldungsdatum: 07.01.2005 Beiträge: 1007 Wohnort: Regensburg/Oberpfalz
|
Verfasst am: 16.07.2006, 10:26 Titel: |
|
|
@ Sebastian:
Danke für den Tipp mit dem VB-Arc, und insbesondere für deine Portierung des ID3v1-Codes. Das Problem daran ist, dass ich quasi darauf angewisen bin, auch v2-Tags lesen zu können.
Ich werde das aber auf jeden Fall mal im Hinterkopf behalten.
Wenn ich mit der Lib, die volta gepostet hat, nicht zurecht komme, werde ich wohl oder übel die Funktionalität auf v1-Tags einschränken müssen.
@ ytwinky:
Danke auch für den Link mit der AutoIt-DLL. But why all the troubles? (I'm thinking of the Petze-Mode) Ich meine, es ist doch keine Sünde, skriptsprachen zu verwenden, oder ist an dieser irgendetwas besonderes? (Habe zuvor noch nie was von AI gehört, und nur grade im Wiki ne Kurzbeschreibung gelesen...)
Anyway, gibt's spezielle dinge, die man vor der erstanwendung wissen sollte?
@ ytwinky & jb:
Es ist ganz interessant, wie man einigermaßen sogar nachvollziehen kann, worüber ihr grade sprecht Und das bis jetzt ganz ohne Leo!
Have a nice day
Ciao _________________ fully biological degradable
Once, the big wave arrives, you've got two ways, you can go:
Either, you ride it, or you don't do.
But, if you don't ride, you'll never know wether you'd have gone wet. |
|
Nach oben |
|
|
Sebastian Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
|
ytwinky
Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 16.07.2006, 12:00 Titel: |
|
|
Dusky_Joe hat Folgendes geschrieben: | Anyway, gibt's spezielle dinge, die man vor der erstanwendung wissen sollte? | Schau einfach mal ins deutsche AutoIt-Forum(das RICHTIGE)
Da sind jede Menge Infos, Skripts(nicht nur von mir..), usw..
Du solltest über die letzte Stable-Version stets die neueste Beta installieren..
(Ich kann nicht glauben, daß ich das geschrieben habe )
[Edit]
Korrektur:Nicht alles was geschrieben steht, ist stets richtig
Die deutsche Hilfe(if any) ist ein wenig veraltet, lieber die Englische benutzen..
..und installiere dir SciTE, der ist gut zum Editieren der au3-files..
..ach eigentlich ist kaum was zu beachten, wie du siehst
Give it a try, it's worth it..
Gruß
ytwinky _________________
v1ctor hat Folgendes geschrieben: | Yeah, i like INPUT$(n) as much as PRINT USING.. | ..also ungefähr so, wie ich GOTO..
Zuletzt bearbeitet von ytwinky am 22.07.2006, 12:15, insgesamt einmal bearbeitet |
|
Nach oben |
|
|
Sebastian Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
|
Dusky_Joe
Anmeldungsdatum: 07.01.2005 Beiträge: 1007 Wohnort: Regensburg/Oberpfalz
|
Verfasst am: 21.07.2006, 15:13 Titel: |
|
|
Echt spitze, Sebi! Ich danke sehr!
hatte zwar die Woche über angefangen, die AutoIT-Scripts zu übersetzen, auf die ytwinky mich aufmerksam gemacht hat, aber dank herrlichsten Zeitmangels konnte ich mir nur einen groben überblick verschaffen.
However, jetzt liegt es wohl an mir, meine Zeit so einzuteilen, dass die nötig gewordenen Ref-änderungen UND dieses Proggi fertig werden.
Für die optimale Traumlösung fehlt zwar noch die automatische Erkennung, ob denn V1 oder V2 gelesen werden soll, aber das bekomm ich doch noch alleine hin.
Der Platz in den Credits ist dir sicher. Übrigens glaube ich, dass sich der Code auch auf deiner HP ganz gut machen würde, was denkst du?
Danke auch nochmal an ytwinky, dank deiner Recherchen habe ich jetzt schon mal ne gute Vorstellung von der Struktur einer MP3. Ich schätze, es ist nru fair, deine Mühen auch in den Credits zu erwähen
Have a nice day
Ciao
Dusky_Joe _________________ fully biological degradable
Once, the big wave arrives, you've got two ways, you can go:
Either, you ride it, or you don't do.
But, if you don't ride, you'll never know wether you'd have gone wet. |
|
Nach oben |
|
|
Sebastian Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
Verfasst am: 21.07.2006, 15:28 Titel: |
|
|
Dusky_Joe hat Folgendes geschrieben: | Echt spitze, Sebi! Ich danke sehr! |
Hab ich gern gemacht.
Dusky_Joe hat Folgendes geschrieben: | Der Platz in den Credits ist dir sicher. |
Super, danke!
Dusky_Joe hat Folgendes geschrieben: | Übrigens glaube ich, dass sich der Code auch auf deiner HP ganz gut machen würde, was denkst du? |
Ja, würd ich auch sagen. Nach dem Urlaub mache ich mich mal dran, die ID3Tag-Codes und ein weiteres Codebeispiel für einen DSL-Verbindungsmonitor auf die Seite zu laden. _________________
Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen! |
|
Nach oben |
|
|
ytwinky
Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 21.07.2006, 15:52 Titel: |
|
|
Dusky_Joe hat Folgendes geschrieben: | Ich schätze, es ist nru fair, deine Mühen auch in den Credits zu erwähen | Boah, das geht runter wie Öl..
Merci infiniment
Ooops,
[/Französisch]
Danke vielmals
Gruß
ytwinky _________________
v1ctor hat Folgendes geschrieben: | Yeah, i like INPUT$(n) as much as PRINT USING.. | ..also ungefähr so, wie ich GOTO.. |
|
Nach oben |
|
|
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|