基于C#多媒体播放器的设计与实现

(整期优先)网络出版时间:2021-04-22
/ 3

基于 C#多媒体播放器的设计与实现

刘治伟 1 李鑫 2

1 2 武汉学院信息工程学院

[摘要]音乐现在成了人们生活中不可或缺的一部分,是人类思想的寄托与载体。音乐是有目的的,是有内涵的,其中隐含了作者的生活体验,思想情怀。一款好的PC音乐播放器不仅要能够提供好的音乐播放效果,更应该能够为用户提供方便。针对目前PC环境下的音乐播放器功能比较单一,只能实现简单的音乐播放、循环播放、随机播放等简单功能。而人们有时候更多的时候去听一首歌,喜欢的是那些深入人内心的歌词,有时候人们还想在听觉享受的同时,是不是也有视觉上的享受。本系统将研究人们越来越广泛的需求来设计一款功能较全面的多媒体播放器,实现歌曲,歌词与MV的同步播放,还可以通过歌词来切换播放进度。

[关键词]多媒体播放器;.NET Framework;编程技术

指导教师:陈鹏

1引言

随着生活节奏的加快,人们生活的压力也随之加大,而聆听音乐则是大家用来减压的首选,因为音乐最能与人的情感产生共鸣。它还可以陶冶人的情操,极大的丰富人们的精神生活。

而且近年来,大陆、香港、台湾以及各华人地区的流行音乐交流的越来越深入,开始出现相互融合、汇聚的趋势,甚至开始出现“全球华语流行音乐”这样一个总体称谓。世界各地的流行音乐榜单的发布和编制也越来越多的关注大陆市场,由此可见,我们对音乐的需求也越来越大,音乐也成为了我们生活中必不可少的一部分,那么,随之而来的就是人们对多媒体播放器的要求也越来越苛刻。

多媒体播放器将尽量完善人们对播放器的需求,使使用者通过这款播放器实现音乐的全放位的享受,实现播放进度条的滚动;可以加载文件,也可以加载文件夹;可以根据歌词切换播放进度;播放时可以显示歌词,MV等功能。尽一切可能来对媒体播放器的强大,全面等。多媒体播放器将采用C#编程语言,Windows Media Player的编程接口和.NET编程技术,并用Visual Studio 2008.NET作为开发工具。


2 项目的背景及意义

如今,多媒体播放器已然成为了众多电脑使用者最常用的一种应用软件,但是目前我们所使用的多媒体播放器的不是功能比较单一,(多半都只能简单实现音乐的播放、暂停和关闭等功能),就是功能过多、花哨却没有实际作用,这对用户的计算机来说会造成很大的资源浪费,那么,这些形同虚设的功能和花哨的外观对于用户和计算机来说,都是一种负担,对计算机多进程的运行会造成一定的阻碍。

基于上述分析,结合自己和同学们对常用多媒体播放器的使用心得与感受,设计一款实用,又不浮夸,操作简单方便的多媒体播放器,能够满足我们常用需求的同时,也能保证功能的简单化,不复杂,不花哨,这对于软件工程专业的一员来说无疑是一件非常有成就感的事。


3核心技术

3.1 Microsoft Visual Studio.NET 的开发环境简介

.NET Framework是一个多语言组件开发和运行环境,它提供了一个跨语言的统一编程环境。它是5中语言的编译器,同时,.NET Framework核心的面向对象引擎,可以执行所有.NET程序,并且为这些程序提供自动服务,如安全检测、内存管理及性能优化等。自从2020年11月正式发布.NET Framework 4.0后,.NET Framework不断更新,.NET Framework一般指Microsoft .NET Framework。Microsoft .NET Framework是用于Windows的新托管代码编程模型。它将强大的功能与新技术结合起来,用于构建具有视觉上引人注目的用户体验的应用程序,实现跨技术边界的无缝通信,并且能支持各种业务流程。

..NET Framework的结构图如图1所示:

Web服务

Web窗体

Windows窗体

数据和XML类

(ADO.NET,SQL,XSLT,XPath,XML类)

框架基类

(I/O、字符串、安全、线程等)

CLR(公共语言运行库)

(调试、异常、类型检测、JIT编译器)

Windows平台

图1 ..NET Framework的结构图

Visual Studio .Net 是为建立基于.Net Framework应用程序而设的一个可视化集成开发环境(Integrated Development Enviroment,IDE),是微软.NET平台上的一个功能强大的、集成了多种开发语言(包括VB.NET、VC++、C#、VJ#)的软件开发工具。它为所有的编程语言提供了简单统一的代码编辑器,包括XML编辑器、HTML编辑器、SQL Server接口、以图形化的方法设计服务器构件的设计器、监控远程机器的Server Explorer。可以说,Visual Studio .Net集中了建立分布式应用所需的功能。使用此集成开发工具而不是用SDK编辑C#程序有以下主要原因:

1、IDE支持首行缩进,切c#程序的关键字等可用不同的颜色直观表示,以便检查。

2、IDE的语法导航功能可实现动态查找、提示编辑工程中的错误。

3、便于开发Windows应用程序。可以像Visual Basic一样直接拖放控件来“绘制”Windows窗体。

3.2 C#语言简介

作为编程语言,C#是现代的、简单的、完全面向对象的。更为突出的是,它在类、名字空间、方法重载和异常处理等方面,C#去掉了C++中的诸多复杂性,借鉴和修改了Java的许多特性,使其更加易于使用,不容易出错。

C#在设计上的优点具体有如下几点:

1、简单性:没有指针,不需要记那些源于不同处理结构的数据类型,不会发生搞混了比较和赋值运算的错误。

2、现代性:C#实现了许多在传统语言中没有的特征,如C#可以直接通过代码访问安全机制来保证安全性,也可以使用一个新的decimal数据类型来进行货币运算。

3、面向对象:C#支持面向对象的所有关键概念:封装、继承和多态性。

4、类型安全性:C#去掉了指针,从根本上保证了程序的稳定性和安全性。

5、版本处理技术:C#尽其所能支持Dynamic Link Library版本的处理功能,避免了“DLL灾难”。

3.3 Windows Media Player技术

Windows Media Player是微软公司出品的一款免费的播放器,是Microsoft Windows的一个组件,支持通过插件增强功能,在后来还支持换肤。它可以播放MP3,WMA,WAV等音频文件和AVI,MPEG-1等视频文件。

Windows Media Player播放器经过不断的升级,从6.4,7.0,,8.0到如今的9.0,受到越来越多的电脑使用者的喜爱。特别是随着Windows Media Player9.0的推出,它已经从原来单纯的Windows组件发展成为一个全能的网络多媒体播放器,不仅能播放WAV、MID、MP3、MPG、AVI、ASF、WMV等文件,而且支持DVD及最新的MP4格式(MP4是针对数码电视提出的,在音频部分,增加了一个“低频扩展”声道从而提升至5个声道编码)的文件。

运用Windows Media Player编程接口进行编程应用已经非常广泛,其优点在于编程方便,可以提高编程效率,还能够保证音乐的音质;缺点是与具有同类功能的播放器相比,其所占的系统资源相对较多,而且在占资源方面,一代比一代占的厉害。


4 系统可行性分析

4.1 系统说明

本系统设计的是一个多媒体播放器,该系统界面简洁,使用方便。该播放器能满足使用者的正常需求,且不占据电脑的太多资源,不会对使用者和电脑造成无谓的负担。多媒体播放器主要由4个窗体组成,这4个窗体则是通过信息的互相传递来实现关联操作,它将采用C#编程语言,Windows Media Player的编程接口和.NET的编程技术,并用Visual Studio 2008.NET作为开发工具来实现。

4.2系统技术可行性分析

技术可行性是可行性研究的关键内容。本系统是用C#语言开发的,调试相对来说比较简单,对计算机的硬件要求也不高,一般的PC机都能够满足此系统的开发需求。它的关键技术是要如何实现窗体间的信息传递,实际上是要将窗体设为公共窗体,熟悉AxWindowsMediaPlayer控件(用来完成媒体文件的播放)的相关应用,而该控件并不是C#默认的控件,而是一个COM组件,本系统还要求在列表框中动态移动选中的项,攻克如何在文件夹中遍历文件,还有如何实现播放进度条。

基于Visual Studio 2008开发工具的智能、以及强大的功能再加上Windows Media Player强大、丰富、简单易懂的编程接口使编程变得更加容易。在开发过程中即使遇到困难,我们也能够自行去查阅资料,或是与同学和指导老师进行交流,将其攻克,找到最佳的解决方案。总之,利用现有技术,能够实现系统的全部功能,而且,能够在限定的时间内完成相对应的项目开发任务。所以此系统的开发在技术上是可行的。

4.3系统经济可行性分析

系统经济可行性的分析是要根据系统开发的成本预算,结合实际情况,将预算与收益进行对比,从经济的角度来衡量开发此系统是否可行。本系统的设计与实现所需要的费用主要包括;系统的开发,运行和维护费用;工作人员费用;购买所需设备的费用等,基于此次毕业设计的整个开发过程都是自己一人完成,且所需的全部软件平台都是免费的,所以此系统的开发在经济上是可行的。

4.4系统操作可行性分析

本系统所占系统空间不大,运行该软件所需环境配置的要求不高,且操作简单方便,能够满足大多数用户的需求。

本多媒体播放器除了完成一个播放器最基本的播放、暂停、关闭等功能外,还增加了视频的播放画面,文件播放模式的设置,播放进度条和音量控制条的设置,歌词滚动播放和当前播放曲目的长度显示,还能通过歌词的切换来控制播放进度,在播放窗体上还有显示歌曲播放的时间,显示当前播放歌曲的文件信息等。

每个功能模块的作用具体描述如下:

1、播放设置:主要用来控制歌曲的播放状态(播放、暂停、上一曲、下一曲)和播放模式(单曲循环,单曲播放,顺序播放,随机播放,循环播放)

2、歌曲信息显示设置:在播放窗体中会显示当前歌曲的播放状态,播放时间以及歌曲的总长度(用播放所需时间代替)

3、文件设置:主要用来打开本地文件夹,可以添加单个的播放文件,也可以同时添加整个文件中的播放文件,实现歌曲文件添加的多样化;此外,当播放列表里面的曲目过多时,还可以对多余曲目进行删除。

4、歌词设置:在歌曲播放时显示歌词,根据文件的播放速度,是歌词进行滚动,还可以手动选择某一行歌词,当歌词选中后,播放器会根据歌词所在的时间段来播放当前歌曲文件。

5、进度设置:通过播放进度条来控制歌曲的播放。先获取进度条每个像素的播放长度,再在Timer空间的Tick事件中获取当前播放文件的当前长度,将进度值除以像素的播放长度,来设置滚动快的位置。

6、声音设置:用来调控歌曲播放音量的大小,显示是否静音。

7、MV与图片显示设置:有专门设计一个显示窗体,用来显示歌曲的播放画面或是图片,没有MV和图片的则是用音浪来代替。

8、字幕滚动设置:让歌词窗体里面显示的歌词是可以滚动,并根据选择的歌词来移动播放进度条

4.2 系统结构设计

系统功能流程图2如下:

60813cf27df5d_html_4b2bb34429903994.jpg

图2 系统功能流程图

从图中可以大致看出多媒体中信息发送和调用过程。首先在主界面的添加功能中添加本地的播放文件,然后再在播放列表中选中自己想要播放的文件,同时,还可以选择所需的播放方法。

5总结

此次设计中窗体间的信息传递,播放器主要由4个窗体组成,分别是播放窗体、列表窗体、歌词窗体和显示窗体,而这四个窗体之间则是通过信息的传递来实现关联操作。例如:在播放窗体中播放一个文件时,将该文件的信息添加到列表窗体的列表框中,或者是在类表窗体的列表框中双击要播放的文件时,在显示窗体中进行播放,如果播放的音频文件有歌词,则歌词会在歌词窗体中显示。

实现窗体间的信息传递,实际上就是要将这4个窗体均设为公共窗体,如果还要在其他窗体中对另一窗体中的控件进行操作,则还需要将该控件也设为公共控件。