Fragen zu Grafik- & Soundproblemen und zur Spieleprogrammierung haben hier ihren Platz.
Arrag0n
Beiträge: 32 Registriert: 24.06.2005 20:49
Wohnort: Austria
Kontaktdaten:
Beitrag
von Arrag0n » 25.06.2005 19:20
Hallo
Ich bin neu auf diesem Board und möchte mit PB einen netten kleinen wma Player programmieren.
Ich verwende zum abspielen die FMOD dll.
Hab irgendwo gelesen das FMOD selber die Tags auslesen und schreiben kann hab aber keine relevanten beispiele gefunden.
Villeicht kann mir hier jemand helfen?
Arrag0n
Beiträge: 32 Registriert: 24.06.2005 20:49
Wohnort: Austria
Kontaktdaten:
Beitrag
von Arrag0n » 26.06.2005 09:26
Aus den Steinen, die einem in den Weg gelegt werden, kann man Schönes bauen.
Lukaso
Beiträge: 720 Registriert: 08.09.2004 18:51
Wohnort: Oberkirch
Kontaktdaten:
Beitrag
von Lukaso » 26.06.2005 09:29
Hallo,
hier ist eine Procedure aus meinem PixPlayer, damit lese ich die Tags aus:
Code: Alles auswählen
Procedure GetFmodTags(stream)
*numinfo = AllocateMemory(1)
If FSOUND_Stream_GetNumTagFields(stream, *numinfo)
For num = 0 To PeekL(*numinfo) - 1
*tagtype = AllocateMemory(32)
*name = AllocateMemory(32)
*value = AllocateMemory(32)
*length = AllocateMemory(32)
FSOUND_Stream_GetTagField(hstream, num, *tagtype, *name, *value, *length)
If PeekL(*tagtype) = #FSOUND_TAGFIELD_ID3V2
If PeekS(PeekL(*value)) = "" And Mid(LCase(PeekS(PeekL(*name))), 0, 1) = "t"
offset = 1
ElseIf Mid(PeekS(PeekL(*name)), 0, 4) = "COMM" And PeekL(*length) > 8
offset = 8
EndIf
Select LCase(PeekS(PeekL(*name)))
Case "tit2"
FileTag\Title = PeekS(PeekL(*value) + offset)
Case "tpe1"
FileTag\Artist = PeekS(PeekL(*value) + offset)
EndSelect
ElseIf PeekL(*tagtype) = #FSOUND_TAGFIELD_ASF
Select LCase(PeekS(PeekL(*name)))
Case "title"
FileTag\Title = PeekS(PeekL(*value))
Case "author"
FileTag\Artist = PeekS(PeekL(*value))
EndSelect
Else
Select LCase(PeekS(PeekL(*name)))
Case "title"
FileTag\Title = PeekS(PeekL(*value))
Case "artist"
FileTag\Artist = PeekS(PeekL(*value))
EndSelect
EndIf
FreeMemory(*tagtype)
FreeMemory(*name)
FreeMemory(*value)
FreeMemory(*length)
Next
If FileTag\Title <> "" Or FileTag\Artist <> ""
ProcedureReturn #True
Else
ProcedureReturn #False
EndIf
Else
ProcedureReturn #False
EndIf
FreeMemory(*numinfo)
EndProcedure
MFG Lukaso
Arrag0n
Beiträge: 32 Registriert: 24.06.2005 20:49
Wohnort: Austria
Kontaktdaten:
Beitrag
von Arrag0n » 26.06.2005 09:31
Daaaaanke...
werds gleich mal testen
Aus den Steinen, die einem in den Weg gelegt werden, kann man Schönes bauen.
Arrag0n
Beiträge: 32 Registriert: 24.06.2005 20:49
Wohnort: Austria
Kontaktdaten:
Beitrag
von Arrag0n » 26.06.2005 10:23
Supi
das auslesen funzt super.
Danke!
Aus den Steinen, die einem in den Weg gelegt werden, kann man Schönes bauen.