WinForm项目实战-媒体播放器

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

WinForm项目实战第2章媒体播放器知识点:OpenFileDialog控件的使用。WindowsMediaPlayer控件的使用。TrackBar控件的使用。Process类的使用。2.1实例简介本实例主要应用了WindowsMediaPlayer控件,实现了一个功能简洁的媒体播放器,能够播放常用的媒体文件,以及做到对播放媒体时的基本控制。本章通过媒体播放器实例讲述了OpenFileDialog、ListBox、TrackBar、Timer的应用以及WindowsMediaPlayer控件的基本方法与属性。2.2必备知识下面通过小实例了解和掌握本章的知识点:2.2.1OpenFileDialog表示一个通用对话框,它显示使用户得以打开某个文件的控件。无法继承此类。1.OpenFileDialog示例下面是一个鼠标点击事件中的代码,它实现打开一个某个文本文件的方法。protectedvoidbutton1_Click(objectsender,System.EventArgse){StreammyStream;OpenFileDialogopenFileDialog1=newOpenFileDialog();openFileDialog1.InitialDirectory=c:\\;openFileDialog1.Filter=txtfiles(*.txt)|*.txt|Allfiles(*.*)|*.*;if(openFileDialog1.ShowDialog()==DialogResult.OK){if((myStream=openFileDialog1.OpenFile())!=null){myStream.Close();}}}2.OpenFileDialog控件图2-1OpenFileDialog它提供用户取文件的图形化功能,以上边的示例中表示了基本的使用方法。OpenFileDialogopenFileDialog1=newOpenFileDialog();InitialDirectory属性为打开的对话框时显示的默认路径,Filter属性用以设置或取得筛选取得文件的类型以及对话框的文件选择信息。Multiselect属性确定是否可以选择到多个文件。openFileDialog1.InitialDirectory=c:\\;openFileDialog1.Filter=txtfiles(*.txt)|*.txt|Allfiles(*.*)|*.*;最后使用ShowDialog()判断用户的操作,如果为确定,则执行操作。if(openFileDialog1.ShowDialog()==DialogResult.OK){……}在本章煤体播放器中的代码与效果如果下:属性设置部分图2-2鼠标单击事件privatevoidmenuItem2_Click(objectsender,System.EventArgse){this.odlgFile.Filter=媒体文件|*.mp3;*.wav;*.wma;*.mid;*.avi;*.mpg;*.asf;*.wmv;if(odlgFile.ShowDialog()==DialogResult.OK){this.listBoxSong.Items.AddRange(this.oFDSongAdd.FileNames);}}图2-3代码中有这样一句:this.listBoxSong.Items.AddRange(this.oFDSongAdd.FileNames);主要功能是将播放集合加入到ListBox中,这部分将在后边讲到。2.2.2WindowsMediaPlayer控件说到WindowsMediaPlayer读者可能并不陌生,因为只要是拥有Windows系列操作系统的计算机,都有WindowsMediaPlayer这个播放器,WindowsMediaPlayer包括用于呈现视频和音频的MicrosoftActiveX控件。该控件可在任何运行WindowsMediaPlayer的计算机上获得。在Windows中为提供了这样一个控件,而且对.NET开发也提供了强大且丰富的功能。要在基于Windows的应用程序中使用WindowsMediaPlayer,可以包含一个对服务于该控件的动态链接库(DLL)的引用,这将会是整个章节的核心部分。以下将WindowsMediaPlayer控件简写成WMP控件。1.WMP使用方法在媒体播放控件选择上,选择WindowsMediaPlayer9.0的播放控件WMP.DLL(注意在win9x/NT等老系统版本中,WMP版本可能是6.0,请升级您的系统,或者下载安装WindowsMediaPlayer9.0。当然您也可以使用6.0的版本,但是可能您看到的与本书中稍有不同。),该控件的功能相当完善,而且有漂亮的视频插件,在播放音频文件时,可以享受漂亮的视觉效果。由于WMP.DLL控件不在工具箱中,所以先必须加入该控件:打开工具箱,在空白处点击鼠标右键,选择右键菜单中的新建项...,将弹出选择工具箱项对话框,在此对话框中,从COM组件选项卡中勾选WindowsMediaPlayer组件,确定返回,这时候,在工具箱中就可以看到这个控件了。图2-4WMP控件本身支持播放控制操作,为了通过自己编写的程序代码控制WMP.DLL实现播放,在程序中禁止该控件的一切操作,所以先在窗体中放置一个WMP控件AxWmp,在该控件上点击鼠标右键,选择“属性”项,在弹出的属性对话框中,设置模式为“None”,选择“按比例伸展”,并将音量调整到最大。在高级选项中,将控件自身的控制(启用控件)禁用。注意,如果你想尝试将整个控件功能完全禁用,即使设置AxWmp的Enabled属性为False也无法禁止该控件的使用。但是可以将此放入容器中,将容器禁用方可达到效果。具体设置可参考下图:图2-5图2-62.WMP播放与控制1、播放通过控件的URL方法设置播放媒体路径,并且支持网上地址(HTTP、MMS),然后通过控件的Ctlcontrols.play()方法开始播放,代码如下:AxWmp.URL=”D:\\01.mp3”AxWmp.Ctlcontrols.play()2、暂停通过控件的Ctlcontrols.pause()方法实现播放暂停,通过控件的Ctlcontrols.stop()方法可停止媒体播放。3、全屏播放通过设置控件的fullScreen属性为True实现全屏播放,若播放的是音频文件,则该属性可以启用全屏视频插件效果。4、进/退控制在播放中,如果需要调节播放位置,可通过改变控件的Ctlcontrols.currentPosition属性实现,将该属性的值进行增减,就可以实现播放位置的调整,如:AxWmp.Ctlcontrols.currentPosition=AxWmp.Ctlcontrols.currentPosition+10上面的代码是播放位置向后快进了10个单位,要实现媒体播放位置向前移动,只要减去一定量即可。本章例子中,使用的是TrackBar控件的值来实现对currentPosition的控制。5、连续播放的实现在某曲媒体播放完成时,自动进入下一个媒体的播放,这就是所谓的连续播放。要实现连续播放,需要通过定时器控件实时判断当前播放位置是否到达媒体的最后位置(通过控件的currentMedia.duration属性获取),或者判断歌曲是否已经播放完毕处于停止状态,在一首曲目播放完成后,自动改变播放列表中的播放位置,从而进入下一曲目的播放。具体内容将在后边的内容里给您详细讲解。2.WMP获取媒体信息在使用WMP控件播放时,直接可以取到媒体的信息WMP控件中包裹大量获取信息属性,在这里不再一一介绍,只将用到的属性在下边列出,需要获取到详细资料,请到微软官方网站下载WMP9SDK文档。需要用到的属性如下:获取名称:currentMedia.name;媒体总长度:currentMedia.duration;媒体当前长度:Ctlcontrols.currentPosition;显示当前时间:Ctlcontrols.currentPositionString;2.2.3TrackBarTrackBar是类似于ScrollBar控件的可滚动控件。可以通过以下方式配置跟踪条的Value属性值滚动的范围:通过设置Minimum属性指定该范围的下限,设置Maximum属性指定该范围的上限。1.TrackBar示例usingSystem;usingSystem.Drawing;usingSystem.Windows.Forms;publicclassForm1:System.Windows.Forms.Form{privateSystem.Windows.Forms.TrackBartrackBar1;privateSystem.Windows.Forms.TextBoxtextBox1;[STAThread]staticvoidMain(){Application.Run(newForm1());}publicForm1(){this.textBox1=newSystem.Windows.Forms.TextBox();this.trackBar1=newSystem.Windows.Forms.TrackBar();//TextBox外观this.textBox1.Location=newSystem.Drawing.Point(240,16);this.textBox1.Size=newSystem.Drawing.Size(48,20);//TrackBar外观this.trackBar1.Location=newSystem.Drawing.Point(8,8);this.trackBar1.Size=newSystem.Drawing.Size(224,45);//滑块拖放事件this.trackBar1.Scroll+=newSystem.EventHandler(this.trackBar1_Scroll);//将控件加入主窗体this.ClientSize=newSystem.Drawing.Size(296,62);this.Controls.AddRange(newSystem.Windows.Forms.Control[]{this.textBox1,this.trackBar1});this.Text=TrackBarExample;//设置初始最大值trackBar1.Maximum=30;}//鼠标拖放trackBar的事件动作方法privatevoidtrackBar1_Scroll(objectsender,System.EventArgse){//将trackbar的值显示到textBox1textBox1.Text=+trackBar1.Value;}}2.TrackBar控件图2-7表2-1TrackBar常用属性和常用事件及方法常用属性Name标识控件,是程序中引用的依据Cursor显示的鼠标图标Enabled是否可用,布尔型LargeChange当用PgUp/PgDn按键或用鼠标点击滑块区时滑块滑动的步长Maximum最大位置Minimum最小位置Orientation方向,通过不同设置可得横向或纵向轨道滑块SmallChange当用Up/Dn,Left/Right按键时滑块滑动的步长TickFrequency刻度显示的密度TickStyle显示刻度的方式Value当前滑块位置Visible控件可见,布尔型常用事件及方法Scroll移动滑块时ValueChanged滑块位置发生变化2.2.4ProcessProcess类提供了调用外部程序以及控制的方法和属性,并可以监控程序的进程。在这里将简单举例的使用它。代码如下://实例化ProcessmyProcess=newProcess();//设置启动的文件名myProc

1 / 22
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功