?? unit1.pas
字號:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls, PubUnit;
type
TFrm_Main = class(TForm)
Panel1: TPanel;
OpenBtn: TButton;
PlayBtn: TButton;
PauseBtn: TButton;
StopBtn: TButton;
ExitBtn: TButton;
Label1: TLabel;
Label2: TLabel;
FreqLabel: TLabel;
LengthLabel: TLabel;
OpenDialog1: TOpenDialog;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure OpenBtnClick(Sender: TObject);
procedure PlayBtnClick(Sender: TObject);
procedure PauseBtnClick(Sender: TObject);
procedure StopBtnClick(Sender: TObject);
procedure ExitBtnClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Frm_Main: TFrm_Main;
implementation
{$R *.DFM}
//Init mp3
//hInstance: instance of application
//hWnd: handle of window to display
//DisplayW, DisplayH: width and height
//bands: number of bars
function pvInitMp3(hInstance, hWnd, DisplayW, DisplayH, bands: integer): integer; stdcall; external 'pvmp3.dll';
//free. MUST call this before exit
procedure pvFreeMp3; stdcall; external 'pvmp3.dll';
//get the frequence and length of mp3
procedure pvGetMp3Info(pFileName: PChar; pFreq, pLen: pointer); stdcall; external 'pvmp3.dll';
//play mp3
function pvPlayMp3(pFileName: PChar): integer; stdcall; external 'pvmp3.dll';
//stop mp3
procedure pvStopMp3; stdcall; external 'pvmp3.dll';
//pasue mp3
procedure pvPauseMp3; stdcall; external 'pvmp3.dll';
//resume mp3
procedure pvResumeMp3; stdcall; external 'pvmp3.dll';
procedure TFrm_Main.FormCreate(Sender: TObject);
begin
pvInitMp3(hInstance, Panel1.Handle, Panel1.Width, Panel1.Height, 32);
end;
procedure TFrm_Main.FormDestroy(Sender: TObject);
begin
pvFreeMp3;
end;
procedure TFrm_Main.OpenBtnClick(Sender: TObject);
var
freq, len: integer;
s: string;
begin
if OpenDialog1.Execute then
begin
pvStopMp3;
pvGetMp3Info(pchar(OpenDialog1.FileName), @freq, @len);
Freqlabel.Caption := IntToStr(freq);
s := GetStringFromFrame(len*25);
SetLength(s, length(s)-3);
LengthLabel.Caption := s;
PlayBtn.Enabled := True;
PauseBtn.Enabled := True;
StopBtn.Enabled := True;
PauseBtn.tag := 0;
PauseBtn.Caption := 'P&ause';
end;
end;
procedure TFrm_Main.PlayBtnClick(Sender: TObject);
begin
pvPlayMp3(PChar(OpenDialog1.FileName));
PauseBtn.tag := 0;
PauseBtn.Caption := 'P&ause';
end;
procedure TFrm_Main.PauseBtnClick(Sender: TObject);
begin
if PauseBtn.tag=0 then
begin
PauseBtn.tag := 1;
PauseBtn.Caption := '&Resume';
pvPauseMp3;
end else begin
PauseBtn.tag := 0;
PauseBtn.Caption := 'P&ause';
pvResumeMp3;
end;
end;
procedure TFrm_Main.StopBtnClick(Sender: TObject);
begin
pvStopMp3;
PauseBtn.tag := 0;
PauseBtn.Caption := 'P&ause';
end;
procedure TFrm_Main.ExitBtnClick(Sender: TObject);
begin
Close;
end;
end.
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -