📄 bofangqi.~pas
字号:
unit bofangqi;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, StdCtrls, ExtCtrls, MPlayer, OleCtrls,
RealAudioObjects_TLB, Menus, Buttons, jpeg; //自定义消息
type
TForm1 = class(TForm)
Panel1: TPanel;
OpenDialog1: TOpenDialog;
RealAudio1: TRealAudio;
Timer1: TTimer;
MainMenu1: TMainMenu;
dakai1: TMenuItem;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
Panel2: TPanel;
MediaPlayer1: TMediaPlayer;
Label1: TLabel;
TrackBar2: TTrackBar;
O1: TMenuItem;
X1: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
N8: TMenuItem;
N9: TMenuItem;
N10: TMenuItem;
N11: TMenuItem;
SpeedButton2: TSpeedButton;
SpeedButton3: TSpeedButton;
Panel3: TPanel;
Label2: TLabel;
Label3: TLabel;
TrackBar1: TTrackBar;
SpeedButton1: TSpeedButton;
A1: TMenuItem;
N12: TMenuItem;
N13: TMenuItem;
SpeedButton6: TSpeedButton;
SpeedButton5: TSpeedButton;
SpeedButton7: TSpeedButton;
SpeedButton4: TSpeedButton;
PopupMenu1: TPopupMenu;
N14: TMenuItem;
N15: TMenuItem;
N16: TMenuItem;
N17: TMenuItem;
N18: TMenuItem;
procedure TrackBar1Change(Sender: TObject);
procedure TrackBar2Change(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure N4Click(Sender: TObject);
procedure O1Click(Sender: TObject);
procedure X1Click(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
procedure SpeedButton3Click(Sender: TObject);
procedure SpeedButton4Click(Sender: TObject);
procedure SpeedButton5Click(Sender: TObject);
procedure SpeedButton6Click(Sender: TObject);
procedure N11Click(Sender: TObject);
procedure N9Click(Sender: TObject);
procedure N7Click(Sender: TObject);
procedure N8Click(Sender: TObject);
procedure A1Click(Sender: TObject);
procedure N12Click(Sender: TObject);
procedure FormResize(Sender: TObject);
procedure Panel1Click(Sender: TObject);
procedure N13Click(Sender: TObject);
procedure Panel1DblClick(Sender: TObject);
procedure SpeedButton7Click(Sender: TObject);
procedure N14Click(Sender: TObject);
procedure N15Click(Sender: TObject);
procedure N16Click(Sender: TObject);
procedure N17Click(Sender: TObject);
procedure N18Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
PlayList:TStrings;
EndPosition:integer;
FileIndex:Integer;
FileNum:Integer;
Circulate:Boolean;
implementation
uses Unit2, Unit3, Unit4, Unit5;
{$R *.dfm}
procedure TForm1.TrackBar2Change(Sender: TObject); //播放进度条
begin
timer1.Enabled:=false;
mediaplayer1.Stop;
mediaplayer1.Position:=trackbar2.Position;
mediaplayer1.Play;
timer1.Enabled:=true;
end;
procedure TForm1.TrackBar1Change(Sender: TObject); //声音调节
begin
realaudio1.SetVolume(trackbar1.Position);
end;
procedure TForm1.FormCreate(Sender: TObject); //时间显示
var
st:TSYSTEMTIME;
begin
mediaplayer1.TimeFormat:=tfmilliseconds;
label2.Caption:='0:0:0/0:0:0';
GetSystemTime(st);
end;
procedure TForm1.Timer1Timer(Sender: TObject); //时钟
var total,t,a,b,d,e,f,nowpos:integer;
begin
if mediaplayer1.Error=0 then
begin
total:=round(mediaplayer1.Length div 1000);
nowpos:=round(mediaplayer1.Position div 1000);
t:=nowpos div 3600 ;
a:=(nowpos Mod 3600) div 60;
b:=nowpos Mod 60;
d:=total div 3600;
e:=total Mod 3600 div 60;
f:=total mod 60;
label2.Caption:=''+inttostr(t)+':'+inttostr(a)+':'+inttostr(b)+'/'
+inttostr(d)+':'+inttostr(e)+':'+inttostr(f);
trackbar2.Max:=mediaplayer1.Length;
trackbar2.Min:=0;
trackbar2.OnChange := nil; //拖动进度条同时改变播放时间
trackbar2.Position:=mediaplayer1.Position;
trackbar2.OnChange := TrackBar2Change;
end;
if mediaplayer1.position= trackbar2.Max then
begin
mediaplayer1.rewind;
end
end;
procedure TForm1.N2Click(Sender: TObject); //菜单栏-控制-播放
begin
if mediaplayer1.Mode=mppaused then //如果暂停则继续播放
begin
mediaplayer1.Resume;
end
else
begin
mediaplayer1.Play;
end;
N3.Enabled:=true;
N4.Enabled:=true;
timer1.Enabled:=true;
end;
procedure TForm1.N3Click(Sender: TObject); //菜单栏-控制-暂停
begin
mediaplayer1.Pause;
end;
procedure TForm1.N4Click(Sender: TObject); //菜单栏-控制-停止
begin
trackbar2.Position:=0;
mediaplayer1.Stop;
trackbar2.OnChange := TrackBar2Change;
end;
procedure TForm1.O1Click(Sender: TObject); //菜单栏-文件-打开
var i:integer;
begin
if Opendialog1.Execute then
begin
PlayList:=OpenDialog1.Files; //复制文件到播放列表
for i:=0 to PlayList.Count-1 do
form3.ListBox1.items.Add(ExtractFileName(PlayList[i]));
form3.ListBox1.itemIndex:=0;
FileIndex:=0;
FileNum:=PlayList.Count-1;
self.MediaPlayer1.FileName:=Opendialog1.FileName;
self.MediaPlayer1.Display:=self.Panel1;
self.MediaPlayer1.Open;
MediaPlayer1.Play; //打开后自动播放文件
mediaplayer1.Notify:=true;
mediaplayer1.DisplayRect:=panel1.ClientRect;
label1.Caption:=mediaplayer1.FileName;
trackbar2.OnChange := nil;
trackbar2.Position:=mediaplayer1.Position;
trackbar2.OnChange := TrackBar2Change;
end
end;
procedure TForm1.X1Click(Sender: TObject); //菜单栏-文件-退出
begin
Close;
end;
procedure TForm1.SpeedButton1Click(Sender: TObject); //播放文件
begin
if mediaplayer1.Mode=mppaused then
begin
mediaplayer1.Resume; //当处于暂停时,重新播放
end
else
begin
MediaPlayer1.FileName:=PlayList[FileIndex];
MediaPlayer1.Next;
EndPosition:=MediaPlayer1.Position;
mediaplayer1.Play; //播放
MediaPlayer1.Notify:=True;
label1.Caption:=MediaPlayer1.FileName;
end;
N3.Enabled:=true; //控制各按钮的激活性
N4.Enabled:=true;
timer1.Enabled:=true;
end;
procedure TForm1.SpeedButton2Click(Sender: TObject); //暂停播放
begin
mediaplayer1.Pause;
end;
procedure TForm1.SpeedButton3Click(Sender: TObject); //停止播放
begin
trackbar2.Position:=0;
mediaplayer1.Stop;
trackbar2.OnChange := TrackBar2Change;
end;
procedure TForm1.SpeedButton4Click(Sender: TObject); //打开文件
var i:integer;
begin
if Opendialog1.Execute then
begin
PlayList:=OpenDialog1.Files; //复制文件到播放列表
for i:=0 to PlayList.Count-1 do
form3.ListBox1.items.Add(ExtractFileName(PlayList[i]));
form3.ListBox1.itemIndex:=0;
FileIndex:=0;
FileNum:=PlayList.Count-1;
self.MediaPlayer1.FileName:=Opendialog1.FileName;
self.MediaPlayer1.Display:=self.Panel1;
self.MediaPlayer1.Open;
MediaPlayer1.Play; //打开后自动播放文件
mediaplayer1.Notify:=true;
mediaplayer1.DisplayRect:=panel1.ClientRect;
label1.Caption:=mediaplayer1.FileName;
trackbar2.OnChange := nil;
trackbar2.Position:=mediaplayer1.Position;
trackbar2.OnChange := TrackBar2Change;
end
end;
procedure TForm1.SpeedButton5Click(Sender: TObject); //关闭播放器
begin
realaudio1.SetVolume(0);
speedbutton5.Enabled:=false;
speedbutton5.Visible:=false;
speedbutton6.Enabled:=true;
speedbutton6.Visible:=true;
end;
procedure TForm1.SpeedButton6Click(Sender: TObject); //静音
begin
realaudio1.SetVolume(trackbar1.Position);
speedbutton5.Enabled:=true;
speedbutton5.Visible:=true;
speedbutton6.Enabled:=false;
speedbutton6.Visible:=false;
end;
procedure TForm1.N11Click(Sender: TObject); //菜单栏-帮助-关于
begin
form2.showmodal;
end;
procedure TForm1.N9Click(Sender: TObject); //菜单栏-显示-前端显示-始终
begin
SetWindowPos(Handle,HWND_TOPMOST,Left,Top,Width,Height,0);
N9.Checked:=true;
end;
procedure TForm1.N7Click(Sender: TObject); //菜单栏-显示-前端显示-从不
begin
SetWindowPos(Handle,1,Left,Top,Width,Height,0);
N7.Checked:=true;
end;
procedure TForm1.N8Click(Sender: TObject); //菜单栏-显示-前端显示-播放时
begin
N8.Checked:=true;
if mediaplayer1.Error=0 then
begin
SetWindowPos(Handle,HWND_TOPMOST,Left,Top,Width,Height,0);
end
else
begin
SetWindowPos(Handle,1,Left,Top,Width,Height,0);
end
end;
procedure TForm1.A1Click(Sender: TObject); //播放完成后按播放键播放
begin
MediaPlayer1.Rewind;
MediaPlayer1.Play;
end;
procedure TForm1.N12Click(Sender: TObject);//显示form3 (显示播放列表)
begin
form3.show;
end;
procedure TForm1.FormResize(Sender: TObject);//显示尺寸
begin
mediaplayer1.Notify:=true;
mediaplayer1.DisplayRect:=panel1.ClientRect;
end;
procedure TForm1.Panel1Click(Sender: TObject);//播放时单击暂停
begin
mediaplayer1.Pause;
end;
procedure TForm1.N13Click(Sender: TObject); //显示form4(功能介绍)
begin
form4.showmodal;
end;
procedure TForm1.Panel1DblClick(Sender: TObject);//显示form5(全屏播放)
begin
Form5.show;
mediaplayer1.Resume;
mediaplayer1.Display :=Form5;
mediaplayer1.DisplayRect :=Form5.ClientRect;
form1.visible:=false;
end;
procedure TForm1.SpeedButton7Click(Sender: TObject); // 显示form3 (显示播放列表)
begin
form3.show;
end;
procedure TForm1.N14Click(Sender: TObject); //右击菜单暂停
begin
mediaplayer1.Pause;
end;
procedure TForm1.N15Click(Sender: TObject); //右击菜单播放
begin
mediaplayer1.Play;
end;
procedure TForm1.N16Click(Sender: TObject);//右击菜单打开播放列表
begin
form3.show;
end;
procedure TForm1.N17Click(Sender: TObject); //右击菜单打开
begin
if Opendialog1.Execute then
begin
self.MediaPlayer1.FileName:=Opendialog1.FileName;
self.MediaPlayer1.Display:=self.Panel1;
self.MediaPlayer1.Open;
MediaPlayer1.Play; //打开后直接播放
mediaplayer1.Notify:=true;
mediaplayer1.DisplayRect:=panel1.ClientRect;
label1.Caption:=mediaplayer1.FileName;
trackbar2.OnChange := nil;
trackbar2.Position:=mediaplayer1.Position;
trackbar2.OnChange := TrackBar2Change;
end
end;
procedure TForm1.N18Click(Sender: TObject); //右击菜单关闭
begin
close;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -