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

📄 bofangqi.~pas

📁 用delphi编写的视频播放器
💻 ~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 + -