⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tagsdll.txt

📁 delphi2007写的播放器源码。效果类似于千千静听。
💻 TXT
字号:
unit CST_WMA_Utils;

interface

uses

  Windows, SysUtils, Dialogs;

type

  TTagsData = packed record
    Encoder, Version, Genre, Author, Title, Album,
    Composer, Url, Track, Year, CopyRight: string[255];
    Comments, Lyrics: WideString;
    Duration, BitRate, FileSize: LongInt;
    VBR: Boolean;
  end;

  PTagsData = ^TTagsData;

var
  ShowTags: function(var FileName: PWideChar; var TagsData: PTagsData): Boolean; stdcall;
  SaveTags: function(var FileName: PWideChar; var TagsData: PTagsData): Boolean; stdcall;
  TagDLL_Handle: THandle = 0;



function  LoadWMATagDataDLL: boolean;
procedure FreeWMATagDataDLL;
function  IsTagDataDLLLoaded: boolean;
function  DurationToStr(Duration: integer; ShowMs: boolean): string;
function  ProgDir: string;


implementation

procedure FreeWMATagDataDLL;
begin
  if (TagDLL_Handle <> 0) then begin

     FreeLibrary(TagDLL_Handle);
    TagDLL_Handle := 0;
  end;
end;

function LoadWMATagDataDLL: boolean;
var oldmode: integer;
begin
  if TagDLL_Handle <> 0 then Result := true //(is it allready here)
  else begin
    oldmode := SetErrorMode($8001);
    TagDLL_Handle := LoadLibrary(PChar(progdir+'MetaData.dll'));
    SetErrormode(oldMode);
    if TagDLL_Handle <> 0 then
    begin
      @ShowTags := GetProcAddress(TagDLL_Handle, 'ShowTags');
      @SaveTags := GetProcAddress(TagDLL_Handle, 'SaveTags');
      if (@ShowTags = nil) or
        (@SaveTags = nil)
        then begin
        FreeLibrary(TagDLL_Handle);
        TagDLL_Handle := 0;
      end;
    end;
    Result := (TagDLL_Handle <> 0);
  end;
end;



function IsTagDataDLLLoaded: boolean;
begin
  Result := (TagDLL_Handle <> 0) or (@ShowTags <> nil) or (@SaveTags <> nil);
end;

function DurationToStr(Duration: integer; ShowMs: boolean): string;
begin
  if ShowMs then
    Result := Format('%d:%2.2d,%3.3d', [(Abs(Duration div 60)), Abs(Duration mod 60), Abs(Duration mod 1000)])
  else
     Result := Format('%d:%2.2d', [(Abs(Duration div 60)), Abs(Duration mod 60)]);
end;

function ProgDir: string;
begin
  Result := ExtractFilePath(ParamStr(0));
end;
end.


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -