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

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


1 Mp3播放

首先定义一个播放器接口

package honest.playmusic.impl;

/**
 * 播放器接口
 * @author 李跃东
 * @mail [email protected]
 * @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





你可能感兴趣的:(音乐播放器(4)--Mp3歌曲播放与控制)