Seite 1 von 1

wma Tag auslesen und ändern

Verfasst: 25.06.2005 19:20
von Arrag0n
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. :allright:
Hab irgendwo gelesen das FMOD selber die Tags auslesen und schreiben kann hab aber keine relevanten beispiele gefunden.
Villeicht kann mir hier jemand helfen? :|

wma Tag auslesen und ändern

Verfasst: 26.06.2005 09:26
von Arrag0n
Anscheinend hat noch nie jemand versucht einen wma Tag auszulesen.
Jedenfalls möchte ich mich für die zahlreichen Anregungen und Beiträge bedanken.

:( :( :( :( :(

Verfasst: 26.06.2005 09:29
von Lukaso
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

Verfasst: 26.06.2005 09:31
von Arrag0n
Daaaaanke...

werds gleich mal testen :mrgreen:

wma Tag auslesen und ändern

Verfasst: 26.06.2005 10:23
von Arrag0n
Supi
das auslesen funzt super.
Danke!

:mrgreen: