Delphi程序的设计及实验指导第11章

上传人:cl****1 文档编号:592529741 上传时间:2024-09-21 格式:PPT 页数:31 大小:286KB
返回 下载 相关 举报
Delphi程序的设计及实验指导第11章_第1页
第1页 / 共31页
Delphi程序的设计及实验指导第11章_第2页
第2页 / 共31页
Delphi程序的设计及实验指导第11章_第3页
第3页 / 共31页
Delphi程序的设计及实验指导第11章_第4页
第4页 / 共31页
Delphi程序的设计及实验指导第11章_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《Delphi程序的设计及实验指导第11章》由会员分享,可在线阅读,更多相关《Delphi程序的设计及实验指导第11章(31页珍藏版)》请在金锄头文库上搜索。

1、第十一章第十一章 多媒体编程多媒体编程 11.1 动画组件TAnimate11.2 简单的动画播放程序的设计11.3 简单的CD播放器的制作习 题.11.1 动画组件TAnimate1用处 Delphi提供了一个TMediaPlayer组件,使得程序员可以使用它快速开发音频或者视频播放器。TMediaPlayer组件提供了一个MCIMedia Control Interface,媒体控制界面),它可以轻松地在程序中加入多媒体功能。完整的MCI驱动程序能够支持*.wav、*.dat、*.midi和*.cda等格式的文件。 .11.1 动画组件TAnimate2主要属性(1) Active属性(2

2、) Center属性(3) FileName属性 (4) FrameCount属性 (5) FrameHeight和 FrameWidth属性 (6) Open(6) Open属性属性 (7) Repetitions(7) Repetitions属性属性 (8) StartFrame(8) StartFrame属性和属性和StopFrameStopFrame属性属性 (9) Timers(9) Timers属性属性 .11.1 动画组件TAnimate注意:注意:在使用在使用Play方法时应用注意以下几点:方法时应用注意以下几点:FromFrame的值应该小于或等于的值应该小于或等于ToFra

3、me的值。的值。Count参数值为参数值为0的时候代表持续播放,的时候代表持续播放,直到使用直到使用Stop方法时停止。方法时停止。StartFrame和和StopFrame的值将在使用的值将在使用Play方法时被方法时被FromFrame和和ToFrame的的值覆盖。值覆盖。.11.1 动画组件TAnimate【例【例11-111-1】使用】使用TanimateTanimate组件设计一个简单的动组件设计一个简单的动画播放程序。画播放程序。.11.1 动画组件TAnimate11.1.2 11.1.2 媒体播放器组件媒体播放器组件TMediaPlayerTMediaPlayer1 1用处用处

4、DelphiDelphi提提供供了了一一个个TMediaPlayerTMediaPlayer组组件件,使使得得程程序序员员可可以以使使用用它它快快速速开开发发音音频频或或者者视视频频播播放放器器。TMediaPlayerTMediaPlayer组组 件件 提提 供供 了了 一一 个个 MCIMCI Media Media Control Control InterfaceInterface,媒媒体体控控制制界界面面),它它可可以以轻轻松松地地在在程程序序中中加加入入多多媒媒体体功功能能。完完整整的的MCIMCI驱驱动动程程序序能能够够支支持持*.wav*.wav、*.dat*.dat、*.mi

5、di*.midi和和*.cda*.cda等等格式的文件。格式的文件。.11.1 动画组件TAnimate2主要属性 (1) AutoEnable属性 (2) EnabledButtons属性 (3) AutoOpen属性 (4) AutoRewind属性 (5) ColoredButton属性 (6) DeviceType属性 (7) Display属性 (8) DisplayRect(8) DisplayRect属性属性(9) Mode(9) Mode属性属性 (10) FileName(10) FileName属性属性 (11) StartPos(11) StartPos属性属性 (12)

6、 EndPos(12) EndPos属性属性 (13) Position(13) Position属性属性 (14) Length(14) Length属性属性 .11.1 动画组件TAnimate【例【例11-211-2】使用】使用TMediaPlayerTMediaPlayer组件编写一个简组件编写一个简单的单的AVIAVI文件播放器程序。文件播放器程序。 .11.2 简单的动画播放程序的设计 为了更好地理解为了更好地理解TAnimateTAnimate组件的属性、方法和事件,这一节创建组件的属性、方法和事件,这一节创建一个简单的动画播放程序。通过实例一个简单的动画播放程序。通过实例3 3

7、,更好地掌握,更好地掌握TAnimateTAnimate组组件的应用以及多媒体程序的设计思路。件的应用以及多媒体程序的设计思路。 .11.2 简单的动画播放程序的设计11.2.1 界面设计新建一个工程PrjTAnimate.dpr,按图11-6设计动画播放程序的界面。窗体及其组件属性的设置值如表11-2所示。.11.2 简单的动画播放程序的设计图图11-611-6设计动画播放程序的界面设计动画播放程序的界面.11.2 简单的动画播放程序的设计11.2.2 代码编写1定义存放起始帧、结束帧、循环次数和总帧数varForm1: TForm1;StartFrame,StopFrame,RepeatF

8、rame,SumFrame:integer; .11.2 简单的动画播放程序的设计 2 2TAnimate1TAnimate1组件的组件的OnOpenOnOpen事件处理程序代码事件处理程序代码 procedure TForm1.Animate1Open(Sender: TObject);procedure TForm1.Animate1Open(Sender: TObject); beginbegin ShowMessage(TAnimaetShowMessage(TAnimaet组件触发组件触发OnOpenOnOpen事件,初始化事件,初始化变量变量!);!); (*(*初始化变量初始化变

9、量*)*) StartFrame:=Animate1.StartFrame;StartFrame:=Animate1.StartFrame; StopFrame:=Animate1.StopFrame;StopFrame:=Animate1.StopFrame; RepeatFrame:=Animate1.Repetitions;RepeatFrame:=Animate1.Repetitions; SumFrame:=Animate1.FrameCount;SumFrame:=Animate1.FrameCount; Estartframe.Text:=IntToStr(StartFrame)

10、;Estartframe.Text:=IntToStr(StartFrame); Estopframe.Text:=IntToStr(StopFrame);Estopframe.Text:=IntToStr(StopFrame); Esumframe.Text:=IntToStr(SumFrame);Esumframe.Text:=IntToStr(SumFrame); Erepeatframe.Text:=IntToStr(RepeatFrame);Erepeatframe.Text:=IntToStr(RepeatFrame); end;end;.11.2 简单的动画播放程序的设计 3 3

11、“ “开始播放按钮的开始播放按钮的OnClickOnClick事件处理程序代码事件处理程序代码 procedure TForm1.playClick(Sender: TObject);procedure TForm1.playClick(Sender: TObject); beginbegin StartFrame:=StrToInt(Estartframe.text);StartFrame:=StrToInt(Estartframe.text); StopFrame:=StrToInt(Estopframe.text);StopFrame:=StrToInt(Estopframe.text)

12、; RepeatFrame:=StrToInt(Erepeatframe.text);RepeatFrame:=StrToInt(Erepeatframe.text); (*(*验证动画属性设置编辑框的数据合法性验证动画属性设置编辑框的数据合法性*)*) if (StartFrameStopFrame) or(StopFrameSumFrame) if (StartFrameStopFrame) or(StopFrameSumFrame) thenthen .11.2 简单的动画播放程序的设计 begin /begin /输入范围错误输入范围错误 ShowMessage( ShowMessag

13、e(输入帧的范围错误,所有设置复位!输入帧的范围错误,所有设置复位!);); Animate1.StartFrame:=1; Animate1.StartFrame:=1; Animate1.StopFrame:=Animate1.FrameCount; Animate1.StopFrame:=Animate1.FrameCount; Animate1.Repetitions:=0; Animate1.Repetitions:=0; Estartframe.Text:=1; Estartframe.Text:=1; Estopframe.Text:=IntToStr(Animate1.Fram

14、eCount); Estopframe.Text:=IntToStr(Animate1.FrameCount); Erepeatframe.Text:=0; Erepeatframe.Text:=0; end end elseelse .11.2 简单的动画播放程序的设计 beginbegin (* *设置组件的设置组件的EnabledEnabled属性属性* *) play.Enabled:=False; play.Enabled:=False; stop.Enabled:=True; stop.Enabled:=True; Estartframe.Enabled:=False; Estar

15、tframe.Enabled:=False; Estopframe.Enabled:=False; Estopframe.Enabled:=False; Erepeatframe.Enabled:=False; Erepeatframe.Enabled:=False; (* *设置设置TAnimateTAnimate组件的属性,然后进行播放组件的属性,然后进行播放* *) Animate1.StartFrame:=StartFrame; Animate1.StartFrame:=StartFrame; Animate1.StopFrame:=StopFrame; Animate1.StopFr

16、ame:=StopFrame; Animate1.Repetitions:=RepeatFrame; Animate1.Repetitions:=RepeatFrame; Animate1.Active:=True; / Animate1.Active:=True; /进入播放状态进入播放状态 end; end; end; end; .11.2 简单的动画播放程序的设计4 4“ “停止播放按钮的停止播放按钮的OnClickOnClick事件的处理程序事件的处理程序代码代码procedure TForm1.stopClick(Sender: TObject);procedure TForm1.s

17、topClick(Sender: TObject);beginbegin(*(*停止播放停止播放*)*)Animate1.Stop;Animate1.Stop;play.Enabled:=True; /“play.Enabled:=True; /“开始播放按钮可用开始播放按钮可用stop.Enabled:=False;stop.Enabled:=False;(*(*设置文本框为可用设置文本框为可用*)*)Estartframe.Enabled:=True;Estartframe.Enabled:=True;Estopframe.Enabled:=True;Estopframe.Enabled:

18、=True;Erepeatframe.Enabled:=True;Erepeatframe.Enabled:=True;end; end; .11.2 简单的动画播放程序的设计 运行程序,在运行程序,在EstopframeEstopframe文本框中输入结束帧为文本框中输入结束帧为9 9,单击,单击“ “开开始播放按钮,结果如图始播放按钮,结果如图11-711-7所示。所示。.11.2 简单的动画播放程序的设计 图图11-7 11-7 运行结果运行结果.11.3 简单的简单的CD播放器的制作播放器的制作 11.3.1 界面设计 新建一个工程PrjPcd.dpr,设计如图11-8所示的CD播放器

19、的界面,窗体及其组件属性的设置值如表11-3所示。.11.3 简单的简单的CD播放器的制作播放器的制作图图11-8 CD11-8 CD播放器的界面播放器的界面.11.3 简单的简单的CD播放器的制作播放器的制作11.3.2 11.3.2 代码编写代码编写1 1初始化程序初始化程序procedure TForm1.FormCreate(Sender: TObject);procedure TForm1.FormCreate(Sender: TObject);beginbegin with MediaPlayer1 do with MediaPlayer1 do begin begin Visib

20、le:=True; Visible:=True; DeviceType:=dtCDAudio; / DeviceType:=dtCDAudio; /设置多媒体设备设置多媒体设备的类型的类型 Open; / Open; /通过通过OpenOpen方法打开方法打开CDCD播放设播放设备备 end; end;end; end; .11.3 简单的简单的CD播放器的制作播放器的制作 2 2按钮的按钮的OnClickOnClick事件处理程序代码事件处理程序代码 procedure TForm1.Button1Click(Sender: TObject);procedure TForm1.Button1

21、Click(Sender: TObject); beginbegin MediaPlayer1.play; /“MediaPlayer1.play; /“播放按钮的播放按钮的OnClickOnClick事件处理事件处理 end;end; procedure TForm1.Button3Click(Sender: TObject);procedure TForm1.Button3Click(Sender: TObject); beginbegin MediaPlayer1.Pause; /“MediaPlayer1.Pause; /“暂停按钮的暂停按钮的OnClickOnClick事件处理事件处

22、理 end;end;.11.3 简单的简单的CD播放器的制作播放器的制作 procedure TForm1.Button2Click(Sender: TObject);procedure TForm1.Button2Click(Sender: TObject); beginbegin MediaPlayer1.Stop;MediaPlayer1.Stop;滞不前滞不前 /“ /“停顿按钮的停顿按钮的OnClickOnClick事件处理事件处理 end;end; procedure TForm1.Button4Click(Sender: TObject);procedure TForm1.But

23、ton4Click(Sender: TObject); beginbegin MediaPlayer1.Previous; /“MediaPlayer1.Previous; /“前一曲按钮的前一曲按钮的OnClickOnClick事件处理事件处理 end;end; procedure TForm1.Button6Click(Sender: TObject);procedure TForm1.Button6Click(Sender: TObject); beginbegin MediaPlayer1.Next; /“MediaPlayer1.Next; /“后一曲按钮的后一曲按钮的OnClick

24、OnClick事件处理事件处理 end;end; procedure TForm1.Button7Click(Sender: TObject);procedure TForm1.Button7Click(Sender: TObject); beginbegin MediaPlayer1.Eject;MediaPlayer1.Eject;勤部勤部 /“ /“弹出按钮的弹出按钮的OnClickOnClick事件处理事件处理 end;end;.11.3 简单的简单的CD播放器的制作播放器的制作 (*“(*“翻开按钮的翻开按钮的OnClickOnClick事件处理事件处理*)*) procedure

25、TForm1.Button5Click(Sender: TObject);procedure TForm1.Button5Click(Sender: TObject); beginbegin if OpenDialog1.Execute then if OpenDialog1.Execute then begin begin MediaPlayer1.FileName:=OpenDialog1.FileName; MediaPlayer1.FileName:=OpenDialog1.FileName; MediaPlayer1.Open; MediaPlayer1.Open; end; end

26、; end;end;.11.3 简单的简单的CD播放器的制作播放器的制作 3 3Timer1Timer1组件的组件的Timer1TimerTimer1Timer事件处理程序代码事件处理程序代码 窗体中的窗体中的TimerTimer组件的作用是为程序的运行提供事件的组件的作用是为程序的运行提供事件的控制,例如显示控制,例如显示CDCD播放的当前位置、状态等信息。这播放的当前位置、状态等信息。这里利用里利用MemoMemo组件显示相关的信息。组件显示相关的信息。 procedure TForm1.Timer1Timer(Sender: TObject);procedure TForm1.Timer

27、1Timer(Sender: TObject); varvar i,j,k:integer;i,j,k:integer; pos1,pos2:longint; pos1,pos2:longint; flag:Boolean; flag:Boolean; str1:string; str1:string;.11.3 简单的简单的CD播放器的制作播放器的制作 beginbegin memo1.lines0:= memo1.lines0:=总曲目数:总曲目数:+inttostr(MediaPlayer1.Tracks);+inttostr(MediaPlayer1.Tracks); MediaPla

28、yer1.TimeFormat:=tfMilliseconds; MediaPlayer1.TimeFormat:=tfMilliseconds; pos1:=0; pos1:=0; pos2:=0; pos2:=0; flag:=true; flag:=true; for i:=0 to MediaPlayer1.Tracks-1 do / for i:=0 to MediaPlayer1.Tracks-1 do /显示正在播放的显示正在播放的第几首曲目第几首曲目 begin begin for j:=0 to i-1 do for j:=0 to i-1 do begin begin po

29、s1:=pos1+MediaPlayer1.TrackLengthj; pos1:=pos1+MediaPlayer1.TrackLengthj; pos2:=pos1; pos2:=pos1; end; end;.11.3 简单的简单的CD播放器的制作播放器的制作 pos2:=pos2+MediaPlayer1.TrackLengthi;pos2:=pos2+MediaPlayer1.TrackLengthi; if MediaPlayer1.Positionpos1 then if MediaPlayer1.Positionpos1 then begin begin if MediaPla

30、yer1.Positionpos2 then if MediaPlayer1.Positionpos2 then begin begin memo1.lines1:= memo1.lines1:=正在播放的曲目:第正在播放的曲目:第 +inttostr(i+1)+ +inttostr(i+1)+ 首首; ; flag:=False; flag:=False; end; end; end; end; end; end; .11.3 简单的简单的CD播放器的制作播放器的制作 if flag thenif flag then memo1.lines1:= memo1.lines1:=正在播放的曲目:

31、第正在播放的曲目:第 1 1 首首; ; k:=round(MediaPlayer1.Length/60000); k:=round(MediaPlayer1.Length/60000); memo1.lines2:= memo1.lines2:=曲目长度:曲目长度:+inttostr(k);+inttostr(k); str1:= str1:=当前状态:当前状态: ; ; (*(*显示显示CDCD播放的当前状态播放的当前状态*)*) Case MediaPlayer1.Mode of Case MediaPlayer1.Mode of mpNotReady: Memo1.Lines3:=st

32、r1+ mpNotReady: Memo1.Lines3:=str1+准备未绪准备未绪; ; mpStopped: Memo1.Lines3:=str1+ mpStopped: Memo1.Lines3:=str1+已停止已停止; ; mpPlaying: Memo1.Lines3:=str1+ mpPlaying: Memo1.Lines3:=str1+正在播放正在播放; ; mpRecording: Memo1.Lines3:=str1+ mpRecording: Memo1.Lines3:=str1+正在记录正在记录; ; mpSeeking: Memo1.Lines3:=str1+ m

33、pSeeking: Memo1.Lines3:=str1+正在搜索正在搜索; ; mpPaused: Memo1.Lines3:=str1+ mpPaused: Memo1.Lines3:=str1+已暂停已暂停; ; mpOpen: Memo1.Lines3:=str1+ mpOpen: Memo1.Lines3:=str1+翻开翻开; ; end; end; end; end;.11.3 简单的简单的CD播放器的制作播放器的制作图11-9 运行结果.习习 题题 1 1利用利用TAnimateTAnimate组件编写一个简单的动画播放程序。组件编写一个简单的动画播放程序。 2 2利用利用TMediaPlayerTMediaPlayer组件制作一个简易的媒体播放器,组件制作一个简易的媒体播放器,具有播放、暂停、停顿、播放前一曲、播放后一曲的功具有播放、暂停、停顿、播放前一曲、播放后一曲的功能。能。.

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号