视频的总长度很好计算、显示,但是视频当前长的需要另行计算。视频当前长度的计算、显示和总长度的计算、显示很相似,只是调用的属性不同而已。这里我们调用的是CurrentPosition属性,此属性是用来获取活设置播放的当前位置。另外视频的当前长度和进度条也是同步显示,这部分功能则需要另外算法。先获取视频的总长度;然后获取视频的总长部和进度条长度(movieTrack.Maximum)的比值,表示进度条单位长度上的视频长度;再用当前视频长度比上这个比值就得到当前视频长度对应的进度条长度,把其赋值给Value显示出即可。
至于播放、暂停、停止功能则很容易实现,这些功能实现所使用的函数在
www.751com.cn Microsoft.DirectX.AudioVideoPlayback 命名空间中都有提供,详细情况请参看上一章。
在本程序中,这三个功能分别有三个按钮,其中播放、暂停按钮是重叠在一起的,当视频处在其中一个状态时,另一个状态的按钮就隐藏不显示。见图二、图三下面按钮区。这三个功能分别是使用三个Button事件实现的:对于播放、暂停功能先判断视频是否为空,为空则各功能按钮不可交互(Enabled;鼠标点击无反应),不为空时若点击暂停按钮时,触发播放事件,终止暂停开始播放,显示播放按钮标志,若点击播放按钮时触发暂停事件终止暂停开始暂停,显示暂停按钮;对于停止功能则先判断视频是否为空,为空各功能按钮不可交互,不为空则判断视频是否处于停止状态,若停止状态(Stopped)停止按钮不可交互,非停止状态才可点击停止按钮,触发停止事件,调用停止函数(stop())。
这部分功能在菜单项中“播放”的下拉菜单中也有实现,实现方式很相似,只是播放、暂停功能实现多了一道步骤:先判断视频的状态,播放(Playing)还是暂停(Paused)状态,然后才是根据不同状态调用不同函数。这部分功能亦设有快捷键,暂停/播放的快捷键是Alt+空格键,停止的快捷键是Ctrl+S。
至于实现播放当前视频的上一个下一个视频已不难。先判断当前视频在其所在的播放列表里是否第一个或最后一个,若是第一个则不能播放其上一个,若是最后一个则不能播放其下一个,否则把当前视频的上一个或下一个视频名称作为参数传给播放函数PlaytheMovie。这部分实现比较方便,代码就不再累述。
3.4 进度控制的实现
探讨企业管理与企业的成长进度控制的实现其实在上节就略有提及,其实就是把进度条和当前播放长度同步结合起来,并能使用鼠标随意拖放进度条进行选择性播放。这里选择使用了Windows Forms提供的TrackBar控件实现这个功能。
TrackBar是可滚动控件,可以通过以下方式配置跟踪条的 Value 属性值滚动的范围:通过设置 Minimum 属性指定该范围的下限,设置 Maximum 属性指定该范围的上限。本程序对Minimum的值设为默认值0,Maximum的值设为10000。其事件ValueChanged在跟踪条的 Value 属性由于滚动框的移动或者由于代码中的操作而更改时发生。而本程序中就是通过改变本文来自辣~文.论^文~网,加7位QQ324_9114找源文Value的值实现进度条和当前播放时间的同步,代码见上节最后部分。当鼠标拖动进度条时也就是跟踪条的Value属性值发生变化,此时事件ValueChanged发生。在实现这个功能时还需用到Microsoft. DirectX. AudioVideo Playback 中Video类的SeekCurrentPosition属性。这个属性实现从指定位置播放的功能,其有两个参数,一是位置,二是寻址方式。位置是浮点型的,注意这里以 10000000之一秒为单位,所以以秒为单位需要乘以 10000000。代码和上节最后部分的代码很相似,只不过当事件ValueChanged发生时才执行。参看图2,图3进度条。
上一页 [1] [2] [3] [4] [5] 下一页
C#音乐播放器论文设计 第4页下载如图片无法显示或论文不完整,请联系qq752018766