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

📄 main.pas

📁 一个关于delphi媒体播放器的代码。希望大家能够用的着
💻 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 + -