Android歌词秀设计思路(2)歌词处理
来源:西尖山笔记 责任编辑:栏目编辑 发表时间:2013-07-02 05:14 点击:次
这次的内容是歌词处理模块LyricAdapter类。这个类的主要功能有
1.歌词文件的解析
2.对外提供歌词访问服务(歌词数取得,歌词内容,时间的取得等)
3.根据播放位置检索对应的歌词。
4.在歌词文件取得后和当前歌词变化以后通过登录的LyricListener进行通知。
先看看LyricAdapter类在整个软件中的位置。
从图中可以看出,LyricAdapter类和SafeTimer类一样,归LyricPlayerService管理,并位置提供服务。
接下来在说明LyricAdapter的功能之前,先让我们看看我们的处理对象,歌词文件的内容。打开一个歌词文件(*.lrc)可以看到以下内容。
- [ti:δ֪]
- [ar:]
- [al:Family Album, U.S.A.]
- [by:SPJ]
- [00:00.97]EPISODE 12 You're Tops
- [00:06.20]ACT II
- [00:10.52]Sam, would you come in, please?
- [00:16.62]You sound like something's bothering you, Susan.
- [00:19.15]The sketches for the cover of the new doll book?
- [00:21.74]That's not it.
- [00:23.35]Please sit down.
- [00:24.56]Sure.
- [00:30.31]I need your advice on a personsal matter,
- [00:32.53]but it's not about me.
- [00:35.12]You need my advice on a personal matter,
- [00:36.89]and it's not about you. OK.
- [00:40.01]It's about my grandfather.
- [00:42.62]What's the problem?
- [00:45.17]It won't sound like a big deal,
除了前面的几个特殊的ti,ar,al,by等关键字以外的每一句歌词都是有包含在中括号中的时间和后面的歌词组成的。歌词处理模块的功能就是解析歌词文件并按照歌曲播放的时间选择合适的歌词表示就可以了。
下面来看一看今天的主角和配角吧。
LyricAdapter类主要提供以下功能
- 解析歌词文件并管理得到的信息。
- 提供访问歌词的接口(歌词语句数,取得特定歌词信息等)
- 根据提供的时间选择合适的歌词并将结果通知给LyricPlayerServie类。
SafetyTimer类主要提供以下功能
- 负责定时启动从MediaPlayer取得播放的当前时间并传达给LyricAdapter
LyricPlayerService类主要提供以下功能
- 负责控制LyricAdapter,SafetyTimer的创建
- 建立LyricPlayerService,LyricAdapter,SafetyTimer之间的联系。
- 控制LyricAdapter,SafetyTimer的动作
- 处理传出的LyricAdapter通知
<
相关新闻>>
最新推荐更多>>>
- 发表评论
-
- 最新评论 更多>>