4.1
Player
设计思路:为了播放多种格式的语音视频播放器选择了两种播放插件,一个是Windows自带的 Windows Media
Player播放控件,另一个是PPstream的PowerPlayer.dll播放控件。Windows Media
Player播放控件主要用于播放常见格式的视频音频文件,如AVI,MPEG,WMV等,而后者则播放RM,RMVB格式的视频文件。因为Windows
Media
Player不支持RM,RMVB格式的视频文件播放,想要播放RM,RMVB格式文件,必须有能支持RM,RMVB解码的播放控件。PPstream的PowerPlayer.dll播放控件封装了RM,RMVB编码的插件,因此可以满足要求。
4.3
4.3.1 播放控件的接口属性
为了能够播放各种音频视频格式的文件,选用了两种播放控件,一个是Windows自带的 Windows Media
Player播放控件,另一个是PPstream的PowerPlayer.dll播放控件。(2.4.2的设计思路中已经解释了原因)。Windows
Media
Player播放控件主要用于播放常见格式的视频音频文件,如AVI,MPEG,WMV等,而后者则播放RM,RMVB格式的视频文件。
Windows Media Player控件接口属性:种播放插件,一个是Windows自带的
URL:String; 指定媒体位置,本机或网络地址
uiMode:String; 播放器界面模式,可为Full, Mini, None, Invisible播放控件,另一个是PPstream的Po
playState:integer; 播放状态,1=停止,2=暂停,3=播放,6=正在缓冲,9=正在连接,10=准备就绪
enableContextMenu:Boolean; 启用/禁用右键菜单
fullScreen:boolean; 是否全屏显示播放控件,另一个是PPstream的Po
[controls] wmp.controls //播放器基本控制
controls.play; 播放
controls.pause; 暂停播放控件,另一个是PPstream的Po
controls.stop; 停止
controls.currentPosition:double; 当前进度
controls.currentPositionString:string; 当前进度,字符串格式。如“00:23”4.1
设计思路:
controls.fastForward; 快进
controls.fastReverse; 快退
controls.next; 下一曲为了播放多种格式的语音视频播放器选择了两
controls.previous; 上一曲
[settings] wmp.settings //播放器基本设置
settings.volume:integer; 音量,0-1004.1
设计思路:
settings.autoStart:Boolean; 是否自动播放
settings.mute:Boolean; 是否静音
settings.playCount:integer; 播放次数种播放插件,一个是Windows自带的
[currentMedia] wmp.currentMedia //当前媒体属性
currentMedia.duration:double; 媒体总长度
currentMedia.durationString:string; 媒体总长度,字符串格式。如“03:24”4.1
设计思路:
currentMedia.getItemInfo(const string);
获取当前媒体信息"Title"=媒体标题,"Author"=艺术家,"Copyright"=版权信息,"Description"=媒体内容描述,"Duration"=持续时间(秒),"FileSize"=文件大小,"FileType"=文件类型,"sourceURL"=原始地址
4.3.3 添加曲目的实现4.1
设计思路:
调用了OpenFileDialog()方法,并对初始文件夹进行了设置。接着先取得文件名,再用Substring取得文件扩展名,最后将文件名全部放入菜单控件。
OpenFileDialog opFile = new OpenFileDialog();
opFile.Multiselect = true;种播放插件,一个是Windows自带的
opFile.InitialDirectory = "D:\\My Doncument";
opFile.RestoreDirectory = true;
opFile.ShowDialog();种播放插件,一个是Windows自带的
string[] Fname;
string Ename;
Fname = opFile.FileNames;4.1
设计思路:
Ename = opFile.FileName.Substring(opFile.FileName.LastIndexOf(".")
+ 1);
this.fileType.Text = Ename;
if (Fname.Length > 0)4.1
设计思路:
{
for (int i = 0; i < Fname.Length; i++)
{种播放插件,一个是Windows自带的
}
this.lstPlaylist.SelectedIndex = 0;播放控件,另一个是PPstream的Po
}
4.3.4 媒体文件的筛选
调用了Filter方法,对打开的文件进行了筛选分类,并对FilterIndex(索引)进行了设置。播放控件,另一个是PPstream的Po
opFile.Filter = "音频文件(*.mp3;*.wma)|*.mp3;*.wma视频文件
视频文件(*.avi;*.wmv;*.rmvb;*.rm)|*.avi;*.wmv;*.rmvb;*.rm|
Allfiles(*.*)|*.*";Windows Media
Player
opFile.FilterIndex = 3;
多语种界面的测试主要是对日文界面,英文界面的测试,因为初始化时的界面是默认的中文界面。通过以上的测试,可以看出播放器软件可以实现中文,日文,英文之间的界面切换,和预想的结果一致。播放控件,另一个是PPstream的Po
5.5
图十一 播放器资源占用测试4.1
设计思路:
图十二 超级解霸播放器资源占用测试
通过和超级解霸播放器的对比,发现占用的内存资源较少,但占用的CPU资源更多,和预想的结果不完全一样。
5.6
通过以上的测试,说明播放器能正常播放MP3、WMA、AVI、MPEG、WMV、RM、RMVB等音频视频文件,还能支持中文、日文、英文的操作界面。在系统资源占用上,通过和超级解霸播放器的对比,发现占用的内存资源较少,但占用的CPU资源更多,经过分析,是因为超级解霸的播放器功能更多,还支持网络升级等服务,因此也更占内存资源,而自主开发的播放器里面采用了线程技术,开辟了一个线程去执行一个线程函数,而这个线程函数就是程序中判断播放文件是否停止的函数,此线程函数被设置成500毫秒执行一次,因此占用的CPU资源也就更多了。
结
首先通过对各种音频视频文件编码方式的研究,发现目前的音频视频文件主要有MP3、WMA、AVI、MPEG、WMV,RM、RMVB、DIVX等,其中音频文件MP3以其良好的音质和占用磁盘空间小的优点,成为了发展的主流。另一方面,对于视频文件,想要达到画面音质优秀,同时对磁盘空间占用小的难度很大,目前还没有很好的解决方案,但是由MPEG-4衍生出的DIVX已经开始朝着这个方向发展了,相信在不久的将来,一定可以实现。接着从对多语种音频视频播放器的开发到测试,再将自主开发的播放器和目前流行的几款播放器软件进行的比较和分析,发现自己开发的播放器占用资源虽然少,但功能不如目前流行的播放器那么强大,存在的漏洞数量也可能更多。所以目前流行的播放器之所以这么受欢迎,是因为其外表美观,功能复杂,安全可靠。虽然对硬件要求更高,但是目前的主流硬件配置已经远远高出播放器软件对硬件的要求。最后,多语种音频视频播放器开发的任务已经完成,除了能正常播放常见的音频视频文件,如MP3,WMA,AVI,MPEG,WMV,还能播放RM,RMVB格式的视频文件。支持音量调节,快进、快退的播放控制。支持播放菜单功能,可以添加单个或者多个多媒体文件,任意选择节目进行播放。还可支持多种播放模式,如顺序播放,单曲循环,全部循环,随机播放等。还能支持中、英、日三种语言界面,完全能满足普通用户的要求。但是播放器软件也存在许多缺陷,一是界面不美观,需要改善,二是对CPU资源占用少的优势没有体现出来,还需要进行改良。
0 评论:
发表评论