Android歌词秀设计思路(5)歌词播放服务
来源:西尖山笔记 责任编辑:栏目编辑 发表时间:2013-07-01 16:44 点击:次
接下来说明一下,提供歌词播放器服务的LyricPlayerService。这个类在整个播放过程中的作用是
1.负责管理LyricAdapter的生命周期。
2.控制音乐播放,歌词解析,并且协调音乐与歌词同步。
3.收集超类,LyricAdapter发来的通知并传递给登录的LyricAdapterListener
首先是看一下这个类在全体图中的位置。
从图中我们可以明显的看出这个类处于整个图中的节点位置,光从这一点就可以理解这个类的重要性。
代码不多,简单说明一下。
首先是定义用于从LyricPlayerService接收状态变化通知的接口并提供了指定具象接口的方法。
在歌曲播放过程中,继续应用退出LyricPlayerService还会继续执行。这时如果重新启动播放器应用程序,就有一个重新建立联系,也就是播放中的LyricPlayerService指定接口的场景。在LyricPlayerService的设计中,会重新调用LyricPlayerListener的onLyricLoad和onLyricChanged方法。这样应该可以简化应用侧的实现。
- //定义接受播放器状态变化的接口
- public interface LyricPlayerListener{
- //播放位置发生变化
- public void onPositionChanged(long position);
- //播放器状态发生变化
- public void onStateChanged();
- //当前歌词变化
- public void onLyricChanged(int lyric_index);
- //歌词文件解析完了
- public void onLyricLoaded();
- }
- private LyricPlayerListener mLyricPlayerListener = null;
- void setLyricPlayerListener(LyricPlayerListener listener){
- mLyricPlayerListener = listener;
- if(mLyricPlayerListener != null)
- {
- //新设定Listener直接调用onLyricLoad方法,给以个准备表是内容的机会。
- mLyricPlayerListener.onLyricLoaded();
- int curLyric = mLyricAdapter.getCurrentLyric();
- if(curLyric >= 0 && curLyric < mLyricAdapter.getLyricCount()){
- //如果已经处于播放中状态,将现在歌词通知给Listener
- mLyricPlayerListener.onLyricChanged(curLyric);
- }
- }
- }
创建LyricAdapter的实例
- private<
相关新闻>>
最新推荐更多>>>
- 发表评论
-
- 最新评论 更多>>