【Java项目】Zies-player(Java音乐播放器的设计实现)
本项目实现了简单的Java播放器,界面美观,基本功能丰富,包括:
-
最大化,最小化,关闭,移动;
-
导入文件,显示/隐藏播放列表;
-
播放,暂停,上一首,下一首,列表循环/单曲循环,显示时间,显示文件名,进度条随时间移动;
-
歌词高亮显示,单句歌词滚动显示;
-
换肤功能(目前支持两种皮肤)
项目开源在Github:Zies-player,欢迎各路大神Star和Update,增加新功能~
按钮说明:
功能及界面介绍:
1.开启时主界面:(此时唱片机不转动!)
点击右上角“换肤”按钮(可以循环点击,循环切换颜色)
2.播放时界面:(此时唱片机转动)3.点击暂停停止播放(唱片机停止转动)
4. 点击播放重新开始播放(并刷新歌词区和当前时间)
5. 经测试“上一首”和“下一首”按钮都能正常执行,且按列表循环
6. 单击“列表循环/单曲循环”按钮,按钮变绿(单曲循环状态)。此外,这个按钮可以循环点击,循环切换“列表循环”和“单曲循环”
7.单击右下角“播放列表”按钮,在歌词区显示播放列表(且歌词隐藏)。这个按钮也可以循环点击,歌词区在“歌词”和“播放列表”循环显示
8.两个歌词区:
(1) 主界面歌词灰色,根据时间轴高亮(红色)显示,每次显示15行(可根据页面大小更改,在代码内设置参数sec_per_page即可)。显示到每页最后一句翻页。
(2) 下端歌词蓝色,根据时间轴一句一句显示
几点说明:
1.关于曲库:由Adobe audition从mp3格式转化为wav格式,参数设置为:采样率6000HZ,位深度16,立体声。至于设置这么低的原因,由于与音源相同的参数导出的wav格式太大,会导致内存泄漏。由于采样率的不同,重新写了计算歌曲时间的公式,为iMusicTime=(int)file.length()/1024/23;保证进度条和计时器的正常工作。
2. 关于歌词:直接将lrc文件中的内容复制到txt文件中,命名与歌曲名相同,方便查找。
3. 关于文件名命名:对于文件名命名,要求文件名中不能有空格。
缺陷及未来的改进:
对于这个播放器,对于输入文件的要求太高,一要求wav格式,二要求wav格式不能过大,三要求歌词为txt文件,四要求文件名称中不能含有空格,五要求歌曲的采样参数设置必须按照(采样率:6000HZ,位深度:16位),否则时间和进度条移动都会出现问题。
- 根据歌曲切换专辑封面,显示在gif图唱片机的左侧。
- 打开本地文件按钮边上设置一个音量调节控件。
- 支持多种音乐格式的播放