音乐播放器(4)--Mp3歌曲播放与控制

来源:互联网 发布:linux运维前景2017 编辑:程序博客网 时间:2024/04/28 00:21

这一篇介绍一下使用java播放Mp3的,这里使用的是一个第三方包(jl.jar),项目主页http://www.javazoom.net/index.shtml,有了这个包,我们便可以轻松的实现mp3播放了。


1 Mp3播放

首先定义一个播放器接口

package honest.playmusic.impl;/** * 播放器接口 * @author 李跃东 * @mail androiddevelop@qq.com * @date 2013-11-8 */public interface PlayerImpl{public abstract void playMusic();public abstract void playMusic(int start,int end);public abstract int pauseMusic();public abstract void stopMusic();public abstract void showLrc();public abstract void unShowLrc();public abstract int getCurrentFrame();public abstract boolean isComplete();}


由于这个第三方包中没有提供暂停的接口,所以我写的这个播放器也没有相应的暂停功能,下面我们就使用这个包实现播放器的的相关操作


2 播放器流程控制

 由于播放器整体的操作没有几个,我们可以将这相应的状态进行总结,这里用到的java设计模式中的状态模式,将播放器状态划分为:搜索状态,下一曲状态,歌词切换状态,更新曲库状态,更换歌词状态退出状态,输入错误状态,下面就是针对我们的输入进行状态间的切换,代码如下:

                String cmd="s";while(!isExit){switch(cmd){//搜索//搜索阶段停止播放歌曲case "s": searchState(); break;//下一曲case "n": nextMusicState(); break;//歌词显示切换case "o": lrcSwitchState(); break;//更换歌词case "c": changeLrcState(); break;//更新歌曲库//更新阶段停止播放歌曲case "u": updateState(); break;//退出case "q": exitState(); break;//输入错误或者指定播放歌曲default:  defaultState(cmd); }if(!isExit)cmd=in.nextLine().trim().toLowerCase();}


这样整体上播放器就是一个状态机,根据我们的输入,将会进行状态的切换,由一种状态切换到另一种状态,将问题变得更加简单,方便维护。



歌词获取解析结束,下一篇将会继续讲解音乐播放器(5)-播放器架构

转载请注明原帖地址:http://blog.csdn.net/dliyuedong/article/details/14648731





原创粉丝点击