N'Abend,
wie kann ich - z.B bei einer Datei auf einer Musik-CD den richtigen Namen rausfinden?
So heist z.B die Datei "Track1", aber im WindowsMedia Player erscheint der Titel als "Ich liebe Es" ^^
Wie finde ich den Titel raus? Hab in der PB Hilfe keinen Befehl dafür gefunden....
Thanks
Chris
"untername" einer Datei rausfinden
Das sind bei MP3 die "ID3TAGS"
Dieser code sollte dir helfen:
//EDIT: Ausschnitt aus "Media Player 3 by Alexander N",
release end of september 06

Dieser code sollte dir helfen:
Code: Alles auswählen
;PB 4.0
Procedure.l GetID3v2Tag(FileName.s)
If FileName = ""
ProcedureReturn #False
EndIf
ReadFile(1, FileName)
ID3.s = Space(3)
ReadData(1,@ID3, 3)
; must be ID3v2.3.x
If ID3 = "ID3" And ReadByte(1) = $03
ID3Exists = #True
; skip revision and flag bytes
ReadWord(1)
; get tag size
ID3Size.l = 0
For Byte.l = 3 To 0 Step -1
ID3Size + (ReadByte(1) << (7*Byte))
Next
Else
; no ID3v2.3.x tag present
CloseFile(1)
ProcedureReturn #False
EndIf
; clear tag contents
TagID3v2\Album = ""
TagID3v2\Artist = ""
TagID3v2\Comment = ""
TagID3v2\Composer = ""
TagID3v2\Copyright = ""
TagID3v2\EncodedBy = ""
TagID3v2\Encoder = ""
TagID3v2\Genre = ""
TagID3v2\OrgArtist = ""
TagID3v2\Title = ""
TagID3v2\track = ""
TagID3v2\URL = ""
TagID3v2\Year = ""
Size.l = 0
Repeat
; get frames until no more
FrameID.s = Space(4)
ReadData(1,@FrameID, 4)
If Asc(Left(FrameID, 1)) = 0
; no more frames
CloseFile(1)
ProcedureReturn #True
EndIf
; get frame size
FrameSize.l = 0
For Byte.l = 3 To 0 Step -1
FrameSize + (ReadByte(1) << (7*Byte))
Next
; add frame size to total size
Size + FrameSize
; skip flag and language bytes
ReadWord(1)
ReadByte(1)
; get frame contents
; subtract one for language byte
FrameSize - 1
If FrameSize < 0 : ProcedureReturn #False : EndIf
Contents.s = Space(FrameSize)
ReadData(1,@Contents, FrameSize)
; put frame contents into structure
Select FrameID
Case "TALB"
TagID3v2\Album = Contents
Case "TCOM"
TagID3v2\Composer = Contents
Case "TCON"
TagID3v2\Genre = Contents
Case "TCOP"
TagID3v2\Copyright = Contents
Case "TENC"
TagID3v2\EncodedBy = Contents
Case "TIT2"
TagID3v2\Title = Contents
Case "TOPE"
TagID3v2\OrgArtist = Contents
Case "TPE1"
TagID3v2\Artist = Contents
Case "TRCK"
TagID3v2\track = Contents
Case "TSSE"
TagID3v2\Encoder = Contents
Case "TYER"
TagID3v2\Year = Contents
Case "COMM"
TagID3v2\Comment = Contents
Case "WXXX"
TagID3v2\URL = Contents
EndSelect
If TagID3v2\Artist = "" Or TagID3v2\Artist = " "
TagID3v2\Artist = "Unbekannt"
EndIf
Until Size >= ID3Size ; stop if tag size reached/exceeded
CloseFile(1)
ProcedureReturn #True
EndProcedure
release end of september 06

Wobei intressant zu wissen währe wo man sich dazu connecten muss und wie man die Titellisten dort abfragt.PBZecke hat geschrieben:Bei normalen Musik CD's sind das aber keine ID3 Tags! Die Infos holt sich
der Mediaplayer aus dem Internet.
Zu mir kommen behinderte Delphine um mit mir zu schwimmen.
Wir fordern mehr Aufmerksamkeit für umfallende Reissäcke!
Wir fordern mehr Aufmerksamkeit für umfallende Reissäcke!

- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
> Wobei intressant zu wissen währe wo man sich dazu connecten muss und wie man die Titellisten dort abfragt.
http://de.wikipedia.org/wiki/CDDB
http://www.freedb.org/
http://de.wikipedia.org/wiki/CDDB
http://www.freedb.org/
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Thx.ts-soft hat geschrieben:> Wobei intressant zu wissen währe wo man sich dazu connecten muss und wie man die Titellisten dort abfragt.
http://de.wikipedia.org/wiki/CDDB
http://www.freedb.org/

Zu mir kommen behinderte Delphine um mit mir zu schwimmen.
Wir fordern mehr Aufmerksamkeit für umfallende Reissäcke!
Wir fordern mehr Aufmerksamkeit für umfallende Reissäcke!
