www.pudn.com > 播放mp3的控件.rar > MPegDefs.pas


unit MPegDefs; 
 
interface 
 
uses ElSounds; 
 
procedure DecodeMPEGInfo1(Info : pointer; var Layer : integer; var Bitrate : integer; 
                          var Frequency : integer; var StereoMode : TElSStereoMode); 
 
procedure DecodeMPEGInfo2(Info : Pointer; var Title, Artist, Album, Year, Comment : string; var Genre : byte); 
 
implementation 
 
uses SysUtils; 
 
type 
     PMPegInfo1 = ^TMPegInfo1; 
     TMPegInfo1 = record 
       Astereo_mode, 
       Alayer, 
       Abitrate, 
       Afrequency : integer; 
     end; 
 
     PMPegInfo2 = ^TMPegInfo2; 
     TMPegInfo2 = record 
       TagHeader : array[0..2] of char; 
       Title     : array[0..29] of char; 
       Artist    : array[0..29] of char; 
       Album     : array[0..29] of char; 
       Year      : array[0..3] of char; 
       Comment   : array[0..29] of char; 
       Genre     : Byte; 
     end; 
 
procedure DecodeMPEGInfo2(Info : Pointer; var Title, Artist, Album, Year, Comment : string; var Genre : byte); 
var P : PChar; 
begin 
  P := @(PMPegInfo2(Info).Title); 
  Title := Trim(StrPas(P)); 
  P := @(PMPegInfo2(Info).Artist); 
  Artist := Trim(StrPas(P)); 
  P := @(PMPegInfo2(Info).Album); 
  Album := Trim(StrPas(P)); 
  P := @(PMPegInfo2(Info).Year); 
  Year := Trim(StrPas(P)); 
  P := @(PMPegInfo2(Info).Comment); 
  Comment := Trim(StrPas(P)); 
  Genre := PMPegInfo2(Info).Genre; 
end; 
 
procedure DecodeMPEGInfo1(Info : pointer; var Layer : integer; var Bitrate : integer; 
                          var Frequency : integer; var StereoMode : TElSStereoMode); 
begin 
  with PMPegInfo1(Info)^ do 
  begin 
    Layer := Alayer; 
    StereoMode := TElSStereoMode(AStereo_Mode); 
    Bitrate := ABitrate; 
    Frequency := AFrequency; 
  end;    // with 
end; 
 
 
end.