AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

WMA TAGs auslesen

Ein Thema von dominikkv · begonnen am 24. Jun 2007 · letzter Beitrag vom 17. Jul 2007
Antwort Antwort
dominikkv

Registriert seit: 30. Sep 2006
Ort: Gundelfingen
1.109 Beiträge
 
Delphi 2007 Professional
 
#1

WMA TAGs auslesen

  Alt 24. Jun 2007, 20:09
Hi

zur zeit benutze ich die ATL (Audio Tools Library) um den TAG aus einem WMA-File zu lesen.
Allerdings hab ich festgestellt das das Album und die Tracknummer nur manchmal richtig ausgelesen werden, in den meisten fällen kommt einfach nur '' oder 0 raus.
Ich weiß aber das diese Informationen im File enthalten sind, da diese im Explorer und in Winamp richtig angezeigt werden.

Hier der Code wie ich die TAGs hole:

Delphi-Quellcode:
function TMusicInfo.LoadWma(Source: string): Boolean;
begin
  result := false;

  if WmaFile.ReadFromFile(Source) then
    if WmaFile.Valid then
      begin
        pTyp := Wma;
        pTitle := WmaFile.Title;
        pAlbum := WmaFile.Album;
        pArtist := WmaFile.Artist;
        pGenre := WmaFile.Genre;
        pBitRate := WmaFile.BitRate;
        pTrack := WmaFile.Track;
        pDuration := WmaFile.Duration;
        result := True;
      end;
end;
Wie gesagt, Titel und Interpret etc werden richtig ausgelesen, nur Album und Tracknummer (Track) werden in ca 80% der Files als leerer String bzw 0 zurückgegeben.

Hat jemand eine Idee wie ich das hinbekomme oder eine andere Lösung mit der ich an die TAGs komme?
Vielen dank,
mfg.Dominik
Dominik
  Mit Zitat antworten Zitat
Benutzerbild von Dunkel
Dunkel

Registriert seit: 26. Mär 2007
Ort: Klingenstadt
541 Beiträge
 
Delphi 2007 Enterprise
 
#2

Re: WMA TAGs auslesen

  Alt 24. Jun 2007, 20:20
Hallo!

Hast Du schon mal was von AudioGenie gehört? Diese ActiveX-Komponente kann nicht nur WMA-Tags lesen, schreiben kann sie auch. Bisher bin ich noch auf keine Probleme gestoßen.

Ist zwar keine Freeware (beim Instanzieren kommt ein Nagscreen), nichts desto trotz ohne Einschränkungen nutzbar.
Es ist zu wahr um schön zu sein...
  Mit Zitat antworten Zitat
Benutzerbild von Gausi
Gausi

Registriert seit: 17. Jul 2005
878 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: WMA TAGs auslesen

  Alt 24. Jun 2007, 20:23
Ich hatte mal ein sehr ähnliches (wenn nicht dasselbe) Problem. Ich hab Version 1.0 vom 29. April 2002 der ATL-WMA-Unit. Und da ist in eriner Prozedur ein kleines Fehlerchen drin. So klappt es bei mir:
Delphi-Quellcode:
procedure ReadTagExtended(const Source: TStream; var Tag: TagData);
var
  Iterator1, Iterator2, FieldCount, DataSize, DataType: Word;
  FieldName, FieldValue: WideString;
begin
  { Read extended tag data }
  Source.ReadBuffer(FieldCount, SizeOf(FieldCount));
  for Iterator1 := 1 to FieldCount do
  begin
    { Read field name }
    Source.ReadBuffer(DataSize, SizeOf(DataSize));
    FieldName := ReadFieldString(Source, DataSize);
    { Read value data type }
    Source.ReadBuffer(DataType, SizeOf(DataType));
    { Read field value only if string }
    if DataType = 0 then
    begin
      Source.ReadBuffer(DataSize, SizeOf(DataSize));
      FieldValue := ReadFieldString(Source, DataSize);
    end
    else
     begin
      ////
      // Added By Daniel Gausi Gaußmann, 16.3.2006
      Source.ReadBuffer(DataSize, SizeOf(DataSize));
      /////
      Source.Seek(DataSize, soFromCurrent);
    end;
    
    { Set corresponding tag field if supported }
    for Iterator2 := 1 to WMA_FIELD_COUNT do
      if UpperCase(Trim(FieldName)) = WMA_FIELD_NAME[Iterator2] then
        Tag[Iterator2] := FieldValue;
  end;
end;
  Mit Zitat antworten Zitat
dominikkv

Registriert seit: 30. Sep 2006
Ort: Gundelfingen
1.109 Beiträge
 
Delphi 2007 Professional
 
#4

Re: WMA TAGs auslesen

  Alt 24. Jun 2007, 20:31
ok Jungs, danke für eure Hilfe.
Von AudioGenie hab ich noch nix gehört, hab aber das Problem mit dem verbesserten Code von Gausi lösen können

Vielen Dank an euch beide

mfg.Dominik
Dominik
  Mit Zitat antworten Zitat
Benutzerbild von semo
semo

Registriert seit: 24. Apr 2004
755 Beiträge
 
Delphi 2010 Professional
 
#5

Re: WMA TAGs auslesen

  Alt 15. Jul 2007, 15:41
vielleicht sollte man diese kleine verbesserung den entwicklern dieses sourceforge projektes melden?
  Mit Zitat antworten Zitat
Benutzerbild von Gausi
Gausi

Registriert seit: 17. Jul 2005
878 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: WMA TAGs auslesen

  Alt 15. Jul 2007, 16:07
Hätte ich auch schon mal gemacht, aber dieses Projekt sieht ziemlich tot aus

Zumindest, wenn man die letzte "News" auf der Seite liest: http://mac.sourceforge.net/atl/
  Mit Zitat antworten Zitat
Benutzerbild von semo
semo

Registriert seit: 24. Apr 2004
755 Beiträge
 
Delphi 2010 Professional
 
#7

Re: WMA TAGs auslesen

  Alt 17. Jul 2007, 09:38
dann sollten wir uns da mal drum kümmern
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:22 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz