【摘要】
这几天,千千静听经常无故罢工,一气之下,用Java自己做了个山寨版的。本文主要介绍了自己在设计实现中遇到的一些问题和解决问题的方法,其中包括
1)使用Abstract Factory解决播放器皮肤的转换;
2)使用Builder实现播放器的组装和各部件构建的解耦;
3)使用Decorator增强系统的可扩展性;
3)使用守护线程实现歌曲播放操作的实时响应;
4)以及其他一些UI特效设计(如水晶按钮、半透明组件和渐变背景等等)。
【功能列表】
1)播放控制相关功能:播放、暂停、上一曲、下一曲
2)播放列表相关功能:新建、添加、打开、保存、删除
3)播放歌曲排序功能:按显示标题、文件名、路径名、专辑、文件时间、音轨序号、播放长度等排序
4)播放模式:单曲播放、单曲循环、顺序播放、循环播放、随机播放、自动切换列表
5)声音大小调节功能
6)歌词同步功能
7)播放进度随意调节功能
【系统设计】
1)使用RationalRose进行前期的系统设计,包括包、类等的选择与细化,控制流的定义
2)UI设计
3)系统优化和设计模式的权衡与剪裁
【程序实现】
1)jdk1.5.0_06
2)JMF2.1.1e (Java Media Framework)
3)Graphics2D (Most of the UI are implement by this package)
4)Abstract Factory, Builder, Decorator
【问题探讨】
略
【截图】