Delphi写的多媒播放器

program PMedia;

{*************************************************

  版权所有 (C) 2001-2012 XXX公司

  文件名称: PMedia.dpr

  作者:    XXX     版本:    pm1.0.1    时间: 2012-03-24

  工程概要:多媒体播放的小软件,能够播放视频和音频,操作简捷方便          

**************************************************}

uses

  Forms,

  UMedia in 'UMedia.pas' {MediaForm};

{$R *.res}

begin

  Application.Initialize;

  Application.CreateForm(TMediaForm, MediaForm);

  Application.Run;

end.

 

 

unit UMedia;

{****************************************************************

  版权所有 (C) 2001-2012 XXX公司

  文件名称:  

  作者:    XXX    版本:    pm1.0.1    时间: 2012-03-24

  内容摘要:

  其他说明:

  历史记录:

  1.修改人:  XXX  时间:  2012-03-25     版本: pm1.0.2

  修改原因: 添加了精简模式和退出精简模式的新功能

********************************************************************}

interface

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, ExtCtrls, MPlayer, StdCtrls, FileCtrl, ComCtrls, Buttons;

type

  TMediaForm = class(TForm)

    Panel1: TPanel;  //窗口主面板

    PlayPanel: TPanel;  //视频播放面板

    ProgressBar1: TProgressBar; //进度条

    Timer1: TTimer;//时间组件

    rightGroupBox: TGroupBox; //右侧的group组

    FilterComboBox1: TFilterComboBox; //文件过滤组件

    DriveComboBox1: TDriveComboBox;  //磁盘组件

    DirectoryListBox1: TDirectoryListBox;//文件夹选择列表组件

    FileListBox1: TFileListBox;  //文件列表组件

    bottomGroupBox: TGroupBox;  //底部基本操作的group组

    MediaPlayer1: TMediaPlayer;   //多媒体播放

    repeatBtn: TBitBtn;   //重播按钮

    simpleBtn: TBitBtn;  //精简模式按钮

    playListBtn4: TBitBtn;  //播放列表按钮

    closeBtn: TBitBtn;    //关闭按钮

    playlistLabel: TLabel;  //播放列表标签

    typeLabel: TLabel;  //文件类型标签

    hideBtn: TBitBtn;    // 隐藏按钮

    exitSimpleBtn: TBitBtn; //退出精简模式按钮

    procedure FileListBox1Change(Sender: TObject);

     {************************************************

      过程名称:FileListBox1Change

      功能描述:文件列表中选择文件触发播放事件

      入口参数:Sender

      出口参数:

      其他说明:

    *************************************************}

    procedure Timer1Timer(Sender: TObject);

    {************************************************

      过程名称:Timer1Timer

      功能描述:控制进度条

      入口参数:Sender

      出口参数:

      其他说明:

    *************************************************}

    procedure repeatBtnClick(Sender: TObject);

    {************************************************

      过程名称:repeatBtnClick

      功能描述:该按钮触发循环播放事件

      入口参数:Sender

      出口参数:

      其他说明:

    *************************************************}

    procedure simpleBtnClick(Sender: TObject);

    {************************************************

      过程名称:simpleBtnClick

      功能描述:该过程能够将播放器设置为精简模式

      入口参数:Sender

      出口参数:

      其他说明:

    *************************************************}

    procedure playListBtn4Click(Sender: TObject);

    {************************************************

      过程名称:playListBtn4Click

      功能描述:该过程能够将右侧播放列表显示出来,初始情况设置为不显示的

      入口参数:Sender

      出口参数:

      其他说明:

    *************************************************}

    procedure hideBtnClick(Sender: TObject);

    {************************************************

      过程名称:playListBtn4Click

      功能描述:该过程能够将右侧播放列表隐藏起来

      入口参数:Sender

      出口参数:

      其他说明:

    *************************************************}

    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);

    {************************************************

      过程名称:FormCloseQuery

      功能描述:窗口关闭时弹出提示信息

      入口参数:Sender,CanClose

      出口参数:

      其他说明:

    *************************************************}

    procedure closeBtnClick(Sender: TObject);

    {************************************************

      过程名称:closeBtnClick

      功能描述:关闭按钮提供的关闭窗口的操作

      入口参数:Sender

      出口参数:

      其他说明:

    *************************************************}

    procedure exitSimpleBtnClick(Sender: TObject);

    {************************************************

      过程名称:exitSimpleBtnClick

      功能描述:退出精简模式

      入口参数:Sender

      出口参数:

      其他说明:

    *************************************************}

    private

    { Private declarations }

    FileExt:String[4];{存放文件扩展名}

  public

    { Public declarations }

  end;

 

var

  MediaForm: TMediaForm;

  flag: string; //临时标志变量,当重新选择一个播放文件时,进度条初始化

 

implementation

 

{$R *.dfm}

 

procedure TMediaForm.FileListBox1Change(Sender: TObject);

begin

flag:='false'; //先将全局变量设置为false

FileExt:=AnsiLowerCase(ExtractFileExt(FileListBox1.FileName));//文件扩展名小写化

 if FileExt='.wav' then {是声音}

  begin

    flag:='false';

    Self.ProgressBar1.Position:=0; //将进度条置于初始化位置

    self.PlayPanel.Caption:='播放声音';

    MediaPlayer1.Close;

    MediaPlayer1.FileName:=FileListBox1.FileName;

    MediaPlayer1.Open;

    MediaPlayer1.Play;

    flag:='true'; //进度条开始滑动

  end

 else

  if (FileExt='.avi') or (FileExt='.mp4') then{是动画}

   begin

    with MediaPlayer1 do

     begin

      Close;

      flag:='false';

      Self.ProgressBar1.Position:=0; //将进度条置于初始化位置

      display:=Self.PlayPanel;{播放窗口}

      FileName:=FileListBox1.FileName;

      //PlayPanel.Caption:='';

      MediaPlayer1.DisplayRect;

      Open;

      Rewind;

      Play;

      flag:='true';

     end;

   end

  else

    if FileExt='.mid' then{是音乐}

     begin

      flag:='false';

      Self.ProgressBar1.Position:=0;

      PlayPanel.Caption:='播放音乐';

      MediaPlayer1.Close;

      MediaPlayer1.FileName:=FileListBox1.FileName;

      MediaPlayer1.Open;

      MediaPlayer1.Play;

      flag:='true';

     end;

end;

 

procedure TMediaForm.Timer1Timer(Sender: TObject);

begin

if flag='true' then {当flag为true时进度条开始滑动}

  begin

    Self.ProgressBar1.Position:=Self.ProgressBar1.Position+1;//这里只是演示这种功能了,实际上进度条快慢得参照多媒体的时间

  end

else if flag='false' then

  begin

    Self.ProgressBar1.Position:=0;

  end;

end;

 

procedure TMediaForm.repeatBtnClick(Sender: TObject);

begin

Self.ProgressBar1.Position:=0;

if FileListBox1.ItemIndex <>-1 then {列表中有选择的播放文件时,才能重复播放,否则提示选择文件}

   begin

      mediaplayer1.Rewind;

      MediaPlayer1.Play;

   end

else

   messagedlg('请选择你要播放的文件!',mtwarning,[mbyes],0);

end;

 

procedure TMediaForm.simpleBtnClick(Sender: TObject);

begin

    self.Width:=420; //精简模式下不显示右侧的菜单项

    Self.Height:=365; //精简模式下不显示底部的基本操作项

    self.exitSimpleBtn.Visible:=True;//精简模式下为其提供一个退出的按钮

    Self.ProgressBar1.Visible:=False;//让进度条不可见

    Self.MediaPlayer1.Visible:=False;//让播放条不可见

end;

 

procedure TMediaForm.playListBtn4Click(Sender: TObject);

begin

   self.Width:=600; //将右侧的播放列表显示出来,供用户自主操作

end;

 

procedure TMediaForm.hideBtnClick(Sender: TObject);

begin

    self.Width:=420;//隐藏右侧选择列表

end;

 

procedure TMediaForm.FormCloseQuery(Sender: TObject;

  var CanClose: Boolean);

begin

  if MessageDlg('确定退出吗?',mtConfirmation,[mbOk, mbCancel], 0) = mrCancel then

   begin

    CanClose := False;

   end;

end;

 

procedure TMediaForm.closeBtnClick(Sender: TObject);

begin

   Close;

end; 

procedure TMediaForm.exitSimpleBtnClick(Sender: TObject);

begin

    Self.ProgressBar1.Visible:=true; //退出精简模式时让进度条显示

    self.exitSimpleBtn.Visible:=False;//退出精简模式时让退出精简模式按钮隐藏

    Self.MediaPlayer1.Visible:=true;//退出精简模式时让播放条显示

    Self.Height:=489; //退出精简模式时让底部操作部分显示

end;

end.

学习了好几天的delphi了,对delphi有了浓厚的兴趣,今天用delphi写了个简单的多媒体播放器,虽然功能很简单,但愿能跟大家分享一下学习的乐趣,

一起共同学习,共同进步。主要页面如下图:

做的很粗糙,如果大家有兴趣的话可以去我的资源中免费下载http://download.csdn.net/detail/itsource/4171607

 

 

 

阅读更多
个人分类: Delphi学习
上一篇初识Android之xml解析
下一篇初识Android之音频播放
想对作者说点什么? 我来说一句

Delphi写的多媒播放器

2012年03月25日 5.7MB 下载

DELPHI视频音频播放器源码

2016年02月14日 786KB 下载

MP4播放器(delphi开发的)

2010年04月27日 1.13MB 下载

Delphi播放器

2009年03月17日 1.3MB 下载

Delphi播放器

2012年12月18日 4.48MB 下载

delphi播放器

2013年03月27日 952KB 下载

Delphi 播放器

2008年06月27日 330KB 下载

delphi讯飞在线语音播放器

2017年01月25日 3.68MB 下载

没有更多推荐了,返回首页

关闭
关闭