Thema: Delphi WMA TAGs auslesen

Einzelnen Beitrag anzeigen

Benutzerbild von Gausi
Gausi

Registriert seit: 17. Jul 2005
891 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