《Delphi程序设计及实验指导》电子教案--第11章.ppt

上传人:m**** 文档编号:570068118 上传时间:2024-08-01 格式:PPT 页数:31 大小:312.56KB
返回 下载 相关 举报
《Delphi程序设计及实验指导》电子教案--第11章.ppt_第1页
第1页 / 共31页
《Delphi程序设计及实验指导》电子教案--第11章.ppt_第2页
第2页 / 共31页
《Delphi程序设计及实验指导》电子教案--第11章.ppt_第3页
第3页 / 共31页
《Delphi程序设计及实验指导》电子教案--第11章.ppt_第4页
第4页 / 共31页
《Delphi程序设计及实验指导》电子教案--第11章.ppt_第5页
第5页 / 共31页
点击查看更多>>
资源描述

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

1、第十一章第十一章 多媒体编程多媒体编程 11.1 动画组件TAnimate11.2 简单的动画播放程序的设计11.3 简单的CD播放器的制作习 题11.1 动画组件TAnimate1用途 DelphiDelphi提供了一个提供了一个TMediaPlayerTMediaPlayer组件,使得程序员可组件,使得程序员可以使用它快速开发音频或者视频播放器。以使用它快速开发音频或者视频播放器。TMediaPlayerTMediaPlayer组件提供了一个组件提供了一个MCIMCI(Media Control Media Control InterfaceInterface,媒体控制界面),它可以轻松地

2、在程序中,媒体控制界面),它可以轻松地在程序中加入多媒体功能。完整的加入多媒体功能。完整的MCIMCI驱动程序能够支持驱动程序能够支持* *.wav.wav、* *. .datdat、* *.midi.midi和和* *. .cdacda等格式的文件。等格式的文件。 11.1 动画组件TAnimate2主要属性(1) Active(1) Active属性属性(2) Center(2) Center属性属性(3) (3) FileNameFileName属性属性 (4) (4) FrameCountFrameCount属性属性 (5) (5) FrameHeightFrameHeight和和 F

3、rameWidthFrameWidth属性属性 (6) Open(6) Open属性属性 (7) Repetitions(7) Repetitions属性属性 (8) (8) StartFrameStartFrame属性和属性和StopFrameStopFrame属性属性 (9) Timers(9) Timers属性属性 11.1 动画组件TAnimate注意:注意: 在使用在使用PlayPlay方法时应用注意以下几点:方法时应用注意以下几点: FromFrameFromFrame的值应该小于或等于的值应该小于或等于ToFrameToFrame的值。的值。 CountCount参数值为参数值为

4、0 0的时候代表持续播放,直到使用的时候代表持续播放,直到使用StopStop方法时停止。方法时停止。 StartFrameStartFrame和和StopFrameStopFrame的值将在使用的值将在使用PlayPlay方法时被方法时被FromFrameFromFrame和和ToFrameToFrame的值覆盖。的值覆盖。11.1 动画组件TAnimate【例例11-111-1】使用使用TanimateTanimate组件设计一个简单的动组件设计一个简单的动画播放程序。画播放程序。11.1 动画组件TAnimate11.1.2 11.1.2 媒体播放器组件媒体播放器组件TMediaPlay

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

6、v、* *. .datdat、* *.midi.midi和和* *. .cdacda等格式的文件。等格式的文件。11.1 动画组件TAnimate2主要属性 (1) (1) AutoEnableAutoEnable属性属性 (2) (2) EnabledButtonsEnabledButtons属性属性 (3) AutoOpen(3) AutoOpen属性属性 (4) (4) AutoRewindAutoRewind属性属性 (5) (5) ColoredButtonColoredButton属性属性 (6) (6) DeviceTypeDeviceType属性属性 (7) Display(7

7、) Display属性属性 (8) (8) DisplayRectDisplayRect属性属性(9) Mode(9) Mode属性属性 (10) (10) FileNameFileName属性属性 (11) (11) StartPosStartPos属性属性 (12) (12) EndPosEndPos属性属性 (13) Position(13) Position属性属性 (14) Length(14) Length属性属性 11.1 动画组件TAnimate【例例11-211-2】使用使用TMediaPlayerTMediaPlayer组件编写一个简组件编写一个简单的单的AVIAVI文件播

8、放器程序。文件播放器程序。 11.2 简单的动画播放程序的设计 为了更好地理解为了更好地理解TAnimateTAnimate组件的属性、方法和事件,这一节创建组件的属性、方法和事件,这一节创建一个简单的动画播放程序。通过实例一个简单的动画播放程序。通过实例3 3,更好地掌握,更好地掌握TAnimateTAnimate组组件的应用以及多媒体程序的设计思路。件的应用以及多媒体程序的设计思路。 11.2 简单的动画播放程序的设计11.2.1 界面设计 新新建建一一个个工工程程PrjTAnimate.dprPrjTAnimate.dpr,按按图图11-611-6设设计计动动画画播播放放程程序序的的界界

9、面面。窗窗体体及及其其组组件件属属性性的的设设置置值值如如表表11-211-2所示。所示。11.2 简单的动画播放程序的设计图图11-611-6设计动画播放程序的界面设计动画播放程序的界面11.2 简单的动画播放程序的设计11.2.2 代码编写 1 1定义存放起始帧、结束帧、循环次数和总帧数定义存放起始帧、结束帧、循环次数和总帧数 varvar Form1: TForm1;Form1: TForm1; StartFrame,StopFrame,RepeatFrame,SumFrame:integerStartFrame,StopFrame,RepeatFrame,SumFrame:intege

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

11、StartFrame:=Animate1.StartFrame;:=Animate1.StartFrame; StopFrameStopFrame:=Animate1.StopFrame;:=Animate1.StopFrame; RepeatFrameRepeatFrame:=Animate1.Repetitions;:=Animate1.Repetitions; SumFrameSumFrame:=Animate1.FrameCount;:=Animate1.FrameCount; Estartframe.TextEstartframe.Text:=:=IntToStr(StartFram

12、eIntToStr(StartFrame); ); Estopframe.TextEstopframe.Text:=:=IntToStr(StopFrameIntToStr(StopFrame); ); Esumframe.TextEsumframe.Text:=:=IntToStr(SumFrameIntToStr(SumFrame); ); Erepeatframe.TextErepeatframe.Text:=:=IntToStr(RepeatFrameIntToStr(RepeatFrame); ); end;end;11.2 简单的动画播放程序的设计 3 3“ “开始播放开始播放”

13、”按钮的按钮的OnClickOnClick事件处理程序代码事件处理程序代码 procedure TForm1.playClick(Sender: procedure TForm1.playClick(Sender: TObjectTObject); ); beginbegin StartFrameStartFrame:=:=StrToInt(Estartframe.textStrToInt(Estartframe.text); ); StopFrameStopFrame:=:=StrToInt(Estopframe.textStrToInt(Estopframe.text); ); Repea

14、tFrameRepeatFrame:=:=StrToInt(Erepeatframe.textStrToInt(Erepeatframe.text); ); (*(*验证动画属性设置编辑框的数据合法性验证动画属性设置编辑框的数据合法性* *) ) if (if (StartFrameStartFrame StopFrameStopFrame) ) or(StopFrameor(StopFrame SumFrameSumFrame) ) thenthen 11.2 简单的动画播放程序的设计 begin /begin /输入范围错误输入范围错误 ShowMessageShowMessage( (输

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

16、imate1.FrameCount);:=IntToStr(Animate1.FrameCount); Erepeatframe.TextErepeatframe.Text:=0;:=0; end end elseelse 11.2 简单的动画播放程序的设计 beginbegin (* *设置组件的设置组件的EnabledEnabled属性属性* *) play.Enabledplay.Enabled:=False;:=False; stop.Enabledstop.Enabled:=True;:=True; Estartframe.EnabledEstartframe.Enabled:=Fa

17、lse;:=False; Estopframe.EnabledEstopframe.Enabled:=False;:=False; Erepeatframe.EnabledErepeatframe.Enabled:=False;:=False; (* *设置设置TAnimateTAnimate组件的属性,然后进行播放组件的属性,然后进行播放* *) Animate1.StartFrame:=Animate1.StartFrame:=StartFrameStartFrame; ; Animate1.StopFrame:= Animate1.StopFrame:=StopFrameStopFram

18、e; ; Animate1.Repetitions:= Animate1.Repetitions:=RepeatFrameRepeatFrame; ; Animate1.Active:=True; / Animate1.Active:=True; /进入播放状态进入播放状态 end;end; end; end; 11.2 简单的动画播放程序的设计4 4“ “停止播放停止播放” ”按钮的按钮的OnClickOnClick事件的处理程事件的处理程序代码序代码procedure TForm1.stopClick(Sender: procedure TForm1.stopClick(Sender: T

19、ObjectTObject); );beginbegin(*(*停止播放停止播放* *) )Animate1.Stop;Animate1.Stop;play.Enabledplay.Enabled:=True; /“:=True; /“开始播放开始播放” ”按钮可用按钮可用stop.Enabledstop.Enabled:=False;:=False;(*(*设置文本框为可用设置文本框为可用* *) )Estartframe.EnabledEstartframe.Enabled:=True;:=True;Estopframe.EnabledEstopframe.Enabled:=True;:=

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

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

22、with MediaPlayer1 do with MediaPlayer1 do begin begin Visible:=True; Visible:=True; DeviceTypeDeviceType:=:=dtCDAudiodtCDAudio; /; /设置多媒体设备的类型设置多媒体设备的类型 Open; /Open; /通过通过OpenOpen方法打开方法打开CDCD播放设备播放设备 end;end; end; end; 11.3 简单的简单的CD播放器的制作播放器的制作 2 2按钮的按钮的OnClickOnClick事件处理程序代码事件处理程序代码 procedure TForm

23、1.Button1Click(Sender: procedure TForm1.Button1Click(Sender: TObjectTObject); ); beginbegin MediaPlayer1.play; /“MediaPlayer1.play; /“播放播放” ”按钮的按钮的OnClickOnClick事件处理事件处理 end;end; procedure TForm1.Button3Click(Sender: procedure TForm1.Button3Click(Sender: TObjectTObject); ); beginbegin MediaPlayer1.P

24、ause; /“MediaPlayer1.Pause; /“暂停暂停” ”按钮的按钮的OnClickOnClick事件处理事件处理 end;end;11.3 简单的简单的CD播放器的制作播放器的制作 procedure TForm1.Button2Click(Sender: procedure TForm1.Button2Click(Sender: TObjectTObject); ); beginbegin MediaPlayer1.Stop;MediaPlayer1.Stop;滞不前滞不前 /“/“停止停止” ”按钮的按钮的OnClickOnClick事件处理事件处理 end;end; p

25、rocedure TForm1.Button4Click(Sender: procedure TForm1.Button4Click(Sender: TObjectTObject); ); beginbegin MediaPlayer1.Previous; /“MediaPlayer1.Previous; /“前一曲前一曲” ”按钮的按钮的OnClickOnClick事件处理事件处理 end;end; procedure TForm1.Button6Click(Sender: procedure TForm1.Button6Click(Sender: TObjectTObject); ); b

26、eginbegin MediaPlayer1.Next; /“MediaPlayer1.Next; /“后一曲后一曲” ”按钮的按钮的OnClickOnClick事件处理事件处理 end;end; procedure TForm1.Button7Click(Sender: procedure TForm1.Button7Click(Sender: TObjectTObject); ); beginbegin MediaPlayer1.Eject;MediaPlayer1.Eject;勤部勤部 /“/“弹出弹出” ”按钮的按钮的OnClickOnClick事件处理事件处理 end;end;11.

27、3 简单的简单的CD播放器的制作播放器的制作 (*“(*“打开打开” ”按钮的按钮的OnClickOnClick事件处理事件处理* *) ) procedure TForm1.Button5Click(Sender: procedure TForm1.Button5Click(Sender: TObjectTObject); ); beginbegin if OpenDialog1.Execute then if OpenDialog1.Execute then begin begin MediaPlayer1.FileName:=OpenDialog1.FileName; MediaPlay

28、er1.FileName:=OpenDialog1.FileName; MediaPlayer1.Open; MediaPlayer1.Open; end; end; end;end;11.3 简单的简单的CD播放器的制作播放器的制作 3 3Timer1Timer1组件的组件的Timer1TimerTimer1Timer事件处理程序代码事件处理程序代码 窗体中的窗体中的TimerTimer组件的作用是为程序的运行提供事件的组件的作用是为程序的运行提供事件的控制,例如显示控制,例如显示CDCD播放的当前位置、状态等信息。这播放的当前位置、状态等信息。这里利用里利用MemoMemo组件显示相关的信

29、息。组件显示相关的信息。 procedure TForm1.Timer1Timer(Sender: procedure TForm1.Timer1Timer(Sender: TObjectTObject); ); varvar i,j,k:integeri,j,k:integer; ; pos1,pos2:longint; pos1,pos2:longint; flag:Booleanflag:Boolean; ; str1:string; str1:string;11.3 简单的简单的CD播放器的制作播放器的制作 beginbegin memo1.lines0:= memo1.lines0:

30、=总曲目数:总曲目数:+inttostr(MediaPlayer1.Tracks);+inttostr(MediaPlayer1.Tracks); MediaPlayer1.TimeFormat:= MediaPlayer1.TimeFormat:=tfMillisecondstfMilliseconds; ; 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 /显示正在播放

31、的显示正在播放的第几首曲目第几首曲目 beginbegin for j:=0 to i-1 do for j:=0 to i-1 do begin begin pos1:=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 MediaPl

32、ayer1.Positionpos1 then if MediaPlayer1.Positionpos1 then begin begin if MediaPlayer1.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 简单的

33、简单的CD播放器的制作播放器的制作 if flag thenif flag then memo1.lines1:= memo1.lines1:=正在播放的曲目:第正在播放的曲目:第 1 1 首首; ; k:=round(MediaPlayer1.Length/60000); k:=round(MediaPlayer1.Length/60000); memo1.lines2:= memo1.lines2:=曲目长度:曲目长度:+ +inttostr(kinttostr(k); ); str1:= str1:=当前状态:当前状态: ; ; (*(*显示显示CDCD播放的当前状态播放的当前状态* *

34、) ) Case MediaPlayer1.Mode of Case MediaPlayer1.Mode of mpNotReadympNotReady: Memo1.Lines3:=str1+: Memo1.Lines3:=str1+准备未绪准备未绪; ; mpStoppedmpStopped: Memo1.Lines3:=str1+: Memo1.Lines3:=str1+已停止已停止; ; mpPlayingmpPlaying: Memo1.Lines3:=str1+: Memo1.Lines3:=str1+正在播放正在播放; ; mpRecordingmpRecording: Memo

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

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

最新文档


当前位置:首页 > 高等教育 > 研究生课件

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