📄 main.pas
字号:
unit main;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, StdCtrls, MPlayer, ExtCtrls, Buttons,about;
type
TMain_Form = class(TForm)
TrackBar1: TTrackBar;
TrackBar2: TTrackBar;
MediaPlayer1: TMediaPlayer;
Timer1: TTimer;
Edit1: TEdit;
BitBtn1: TBitBtn;
Edit2: TEdit;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
BitBtn4: TBitBtn;
BitBtn5: TBitBtn;
BitBtn6: TBitBtn;
BitBtn7: TBitBtn;
BitBtn8: TBitBtn;
BitBtn9: TBitBtn;
BitBtn10: TBitBtn;
BitBtn11: TBitBtn;
Edit3: TEdit;
procedure FormActivate(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure TrackBar2Change(Sender: TObject);
procedure BitBtn11Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure BitBtn4Click(Sender: TObject);
procedure BitBtn5Click(Sender: TObject);
procedure BitBtn6Click(Sender: TObject);
procedure BitBtn7Click(Sender: TObject);
procedure BitBtn8Click(Sender: TObject);
procedure BitBtn9Click(Sender: TObject);
procedure BitBtn10Click(Sender: TObject);
procedure TrackBar1Change(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
function cal_length(songlength:integer):string;
end;
var
Main_Form: TMain_Form;
playname:string;
startpos,endpos,mode:integer;
sound_sign:integer;
implementation
uses mmsystem;
{$R *.dfm}
function TMain_Form.cal_length(songlength:integer):string;
var
s:string;
hours,minutes,seconds:integer;
begin
songlength:=songlength div 1000;
seconds:= songlength mod 60;
songlength:=songlength div 60;
minutes:=songlength mod 60;
hours:=songlength div 60;
if strlen(pchar(inttostr(hours)))=1 then
s:='0'+inttostr(hours)
else
s:=inttostr(hours);
s:=s+':';
if strlen(pchar(inttostr(minutes)))=1 then
s:=s+'0'+inttostr(minutes)
else
s:=s+inttostr(minutes);
s:=s+':';
if strlen(pchar(inttostr(seconds)))=1 then
s:=s+'0'+inttostr(seconds)
else
s:=s+inttostr(seconds);
cal_length:=s;
end;
procedure TMain_Form.FormActivate(Sender: TObject);
begin
edit1.text:=' 00:00:00';
timer1.Enabled:=false;
mode:=0;
mediaplayer1.Visible:=false;
Trackbar1.Position:=30;
sound_sign:=1;
end;
procedure TMain_Form.BitBtn1Click(Sender: TObject);
var
opendialog1:TOpenDialog;
songlength:integer;
s1,s2:array [1..200] of char;
i,j:integer;
str:string;
begin
playname:='';
opendialog1:=TOpenDialog.Create(self);
OpenDialog1.DefaultExt:='*.mp3';
if OpenDialog1.Execute then
begin
playname:=OpenDialog1.FileName;
Main_Form.Caption:='媒体播放器案例 '+playname;
mediaplayer1.filename:=playname;
mediaplayer1.open;
mediaplayer1.TimeFormat:=tfMilliseconds;
songlength:=mediaplayer1.Length;
trackbar2.min:=0;
trackbar2.Max:=songlength;
str:=cal_length(songlength);
for i:= 1 to strlen(pchar(playname)) do
s1[i]:=playname[i];
j:=1;
for i:=1 to strlen(pchar(playname)) do
begin
if s1[i]='\' then
j:=1
else
begin
s2[j]:=s1[i];
j:=j+1;
end;
end;
s2[j]:=' ';
edit2.text:=' '+str+' '+s2;
timer1.Enabled:=true;
// trackbar1.min:=0;
// trackbar1.max:=mediaplayer1.
startpos:=0;
endpos:=mediaplayer1.Length;
edit3.text:=' 复读区间 '+cal_length(startpos)+'->'+cal_length(endpos);
end;
end;
procedure TMain_Form.Timer1Timer(Sender: TObject);
var
current:integer;
t:string;
begin
current:=mediaplayer1.Position;
trackbar2.Position:=current;
t:=cal_length(current);
edit1.Text:=' '+t;
if (mode=1) and (mediaplayer1.Position>=endpos) then
begin
mediaplayer1.Position:=startpos;
mediaplayer1.Play;
end;
end;
procedure TMain_Form.TrackBar2Change(Sender: TObject);
begin
if abs(trackbar1.Position-mediaplayer1.Position)>3000 then
begin
mediaplayer1.Stop;
mediaplayer1.Position:=trackbar2.Position;
mediaplayer1.Play;
end;
end;
procedure TMain_Form.BitBtn11Click(Sender: TObject);
begin
Close;
end;
procedure TMain_Form.BitBtn3Click(Sender: TObject);
begin
startpos:=trackbar2.Position;
edit3.text:=' 复读区间 '+cal_length(startpos)+'->'+cal_length(endpos);
end;
procedure TMain_Form.BitBtn4Click(Sender: TObject);
begin
endpos:=trackbar2.Position;
edit3.text:=' 复读区间 '+cal_length(startpos)+'->'+cal_length(endpos);
end;
procedure TMain_Form.BitBtn5Click(Sender: TObject);
begin
mediaplayer1.StartPos:=0;
mediaplayer1.EndPos:=mediaplayer1.length;
mediaplayer1.play;
mode:=0;
end;
procedure TMain_Form.BitBtn6Click(Sender: TObject);
begin
mediaplayer1.Pause;
end;
procedure TMain_Form.BitBtn7Click(Sender: TObject);
begin
mediaplayer1.stop;
end;
procedure TMain_Form.BitBtn8Click(Sender: TObject);
begin
startpos:=0;
endpos:=mediaplayer1.length;
edit3.text:=' 复读区间 '+cal_length(startpos)+'->'+cal_length(endpos);
end;
procedure TMain_Form.BitBtn9Click(Sender: TObject);
begin
mediaplayer1.EndPos:=endpos;
mediaplayer1.StartPos:=startpos;
mediaplayer1.Position:=startpos;
mediaplayer1.Play;
mode:=1;
end;
procedure TMain_Form.BitBtn10Click(Sender: TObject);
begin
About_Form.ShowModal();
end;
procedure TMain_Form.TrackBar1Change(Sender: TObject);
var
t,v:longint;
begin
t:=trackbar1.Position;
v:=(t shl 8) or (t shl 24);
waveoutsetvolume(0,v);
end;
procedure TMain_Form.BitBtn2Click(Sender: TObject);
var
t,v:longint;
begin
if sound_sign=1 then
begin
// Bitbtn2.Glyph.LoadFromFile('D:\书稿\delphi 7课程案例\编程实例\案例1\sound2.bmp');
Bitbtn2.Glyph.LoadFromFile('sound2.bmp');
waveoutsetvolume(0,0);
sound_sign:=0;
end
else
begin
// Bitbtn2.Glyph.LoadFromFile('D:\书稿\delphi 7课程案例\编程实例\案例1\sound1.bmp');
Bitbtn2.Glyph.LoadFromFile('sound1.bmp');
t:=trackbar1.Position;
v:=(t shl 8) or (t shl 24);
waveoutsetvolume(0,v);
sound_sign:=1;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -