您的位置:首页 > 编程语言 > C#

C#开源音乐播放器MetroPlayer3.0发布

2013-08-31 12:55 232 查看
一、说明

MetroPlayer3.0是在MetroMusic1.05及2.0版本的基础之上,进行重构和改进的软件产品。从3.0开始,本软件正式更名为MetroPlayer。MetroPlayer注重良好的用户体验,努力打造适合小众音乐爱好者喜欢的音乐播放器,MetroPlayer主张简洁、实用的设计,MetroPlayer为兴趣而生,注定它将有别于市场上的一切播放器产品,

它将以更加友好的方式,为您带来更加出色的视听体验。MetroPlayer,自由随心,改变从此刻开始。

感谢那些喜欢和热爱MetroPlayer的编程爱好者们,MetroPlayer从一开始就是为兴趣交流而产生的,之前的版本,得到了大家的认可,大家为此提出了很多的建议,现在,当MetroPlayer3.0正式发布的时候,作为软件的开发者,我决定将MetroPlayer开源,从而让更多人来了解和学习这个开源音乐播放器。尽管MetroPlayer的源代码是开放的,这并不意味着您可以任意的使用,在向我索要程序源代码时,请先考虑一下问题:

1、是否是C#编程爱好者
2、是否认同MetroMusic的设计理念:简单、简洁、实用
3、是否了解Xml、Linq的相关知识
4、是否了解GDI+
5、是否阅读过之前版本程序的源代码
6、是否愿意为程序提出建议和改进的思路
7、是否愿意和我一起维护这个项目
8、是否和我一样,对编程有浓厚的兴趣,并且不愿以一个平庸的程序员的形象出现在人们的视野中
9、是否愿意分享自己的软件设计,包括代码、算法
10、是否同意以上协议,并愿意以程序员的名义发誓
假如你满足了以上协议的5条要求,你可以发送邮件到qinyuanpei@163.com进行代码的获取。

二、产品特性

本次程序重要更新:

1、合并喜欢和播放两个列表,实现基于喜欢听的推荐排序算法,实现所听即所爱;下一版本将推出基于用户行为分析的机器学习算法。
2、优化了歌词算法,当发现歌词乱码时,可以手动纠错;下一版本将继续深度优化算法,提供滚动歌词的支持。
3、实现了桌面歌词,可以决定是否显示桌面歌词;下一版本将进行桌面歌词的自定义设置开发工作。
4、电台模式/播放器模式任意切换,MetroPlayer=豆瓣(本地推荐)+播放器,下一版本考虑网络版本。
5 、使用了基于Linq的播放列表读取、存储算法,效率更高,Linq的出现,使得软件需要的.NET
Framework的要求更高,至少需要3.5以上的版本。
6、提供了播放模式的选择支持:顺序循环、单曲循环、随机
7、精美皮肤,随意切换:10款内置皮肤,随心切换
8、全面支持热键控制;
9、提供在线搜索支持;
10、更加友好的界面显示控制;
三、技术路线

内核:WMP12

播放列表:使用Xml作为存储格式,使用Linq进行数据操作,使用Listview控件作为数据容器。

界面设计:WinForm

程序设计:采用面向对象方法进行设计,其中Lrc类是对歌词相关操作的封装,XmlHelper是对Linq的封装,LikeCompare类是对歌曲喜欢读相关操作的封装,Music类是对歌曲信息的封装,Setting类是对播放器设置的封装。

三、缺陷与不足

1、由于歌词和音乐播放使用一个进程,所以歌词显示时间较短,建议使用多线程进行优化。
2、由于桌面歌词的显示需要Timer,所以桌面歌词会有闪烁的情况。(后来发现是设置上的错误)
3、内存占用比较严重,效率上还需要进一步优化。
4 、播放列表、设置文件等地方没有异常处理,可能报错。
5、未能实现鼠标滚轮对声音的调节功能
6、播放列表需要进一步美化,以实现背景的透明
7、暂时未引入在线播放功能,仅提供搜索功能的支持
8、对喜欢度的利用不是很到位,可以整合机器学习等算法,实现音乐DNA。
9、桌面歌词未能实现逐字绘制效果
10、桌面歌词移动会阻塞界面进程
四、结论

MetroPlayer基于前两个版本的重构,技术上已经相当成熟。架构相对合理,代码条理清晰,注释完整,无论是学习编程技术还是作为一款软件产品来使用,都是不错的选择。下一版本的版本号为4.0,将采用全新的WPF技术构建用户界面,界面更加友好,敬请期待!

五、意见反馈

欢迎大家对MetroPlayer提出好的意见和建议!

作者:秦元培

昵称:Robin

QQ:875974254

E-mail:qinyuanpei@163.com

Blog:blog.csdn.com/qinyuanpei

源代码:http://download.csdn.net/detail/qinyuanpei/6043071
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: