Android 自定义歌词同步控件 Android 音乐播放器中,播放音乐的类(即MediaPlayer)在播放音乐的时候,通过MediaPlayer的getCurrentPosition 方法可以得到当前音乐播放的流进度,通过getDuration 可以得到当前音乐总的流大小
因此,我们可以通过这两个方法来判断同步的音乐歌词播放进度
下面,该文档将为大家实现歌词同步,其他音乐播放的东西一概不涉及
歌词同步相关两个类: SongLyric(歌词对象) 歌词对象实例化即可使用,但必须保证该歌词对象验证通过,即歌词文件存在,切正确实例化
LyricView(Android 自定义歌词控件) 该歌词控件不可以写在xml 配置文件中,必须使用一个 layout 布局控件存放,使用的时候先从 Activity 中得到layout,然后再将该歌词控件通过layout 的getContext 的参数实例化,最后添加到layout 中,并且将对应的歌词对象 SongLyric 设置到歌词控件中
最后,歌词控件要做到与音乐同步的效果,还得时时刷新歌词控件,这样就有了歌词同步以及滚动的效果
具体实现方法下面讲到,先看看这两个类源码: SongLyric 类,该对象和网上大部分歌词对象一样,这里为了和歌词控件LyricView 配套,多了一部分方法
package cn
android
widget; import java
BufferedReader; import java
File; import java
FileInputStream; import java
InputStreamReader; import java
HashMap; import java
Map; import java