Entwickler-Ecke

Dateizugriff - ...die Taginformationen einer wma Datei auslesen?


GSE - So 26.06.05 22:50
Titel: ...die Taginformationen einer wma Datei auslesen?
Die Taginformationen einer wma Datei auslesen

hallo,

da ich mich vor kurzem damit beschäftigt hatte die wma Taginformationen auszulesen und auf das Problem der Abweichung der Tag Header usw. und die Unfähigkeit einiger wma units auch wirklich alle tags auszulesen gestoßen bin, hab ich mich informiert und herausgefunden wie man einfach den Mediaplayer zum Auslesen missbrauchen kann.

da ich euch das nicht vorenthalten möchte hier der Code:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
type TWMAFileInfo = record
  Duration: string;
  Author: string;
  CurrentBitRate: string;
  FileSize: string;
  Is_Protected: Boolean;
  SourceURL: string;
  Title: string;
  Album: string;
  Composer: string;
  Genre: string;
  Lyrics: string;
  TrackNumber: Integer;
  Year: Integer;
 end;

procedure ReadWMATag(Filename: stringvar TagInformation: TWMAFileInfo);
var
 wmplayer, wmfile: OLEVariant;
begin
 try
  try
   wmplayer := GetActiveOleObject('WMPlayer.OCX');
  except
   wmplayer := CreateOleObject('WMPlayer.OCX');
  end;
  wmfile := wmplayer.newMedia(Filename);

  TagInformation.Duration := wmfile.durationString;
  TagInformation.Author := wmfile.getItemInfo('Author');
  TagInformation.CurrentBitRate := wmfile.getItemInfo('CurrentBitRate');
  TagInformation.FileSize := wmfile.getItemInfo('FileSize');
  TagInformation.Is_Protected := wmfile.getItemInfo('Is_Protected');
  TagInformation.SourceURL := wmfile.getItemInfo('SourceURL');
  TagInformation.Title := wmfile.getItemInfo('Title');
  TagInformation.Album := wmfile.getItemInfo('WM/AlbumTitle');
  TagInformation.Composer := wmfile.getItemInfo('WM/Composer');
  TagInformation.Genre := wmfile.getItemInfo('WM/Genre');
  TagInformation.Lyrics := wmfile.getItemInfo('WM/Lyrics');
  TagInformation.TrackNumber := wmfile.getItemInfo('WM/TrackNumber');
  TagInformation.Year := wmfile.getItemInfo('WM/Year');
 finally
  wmfile := unassigned;
  wmplayer := unassigned;
 end;
end;
der MediaPlayer muss natürlich installiert sein.

mfg
GSE
Moderiert von user profile iconjasocul: Beitrag geprüft am 09.06.2006