电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

Android自定义歌词同步控件

Android自定义歌词同步控件_第1页
1/13
Android自定义歌词同步控件_第2页
2/13
Android自定义歌词同步控件_第3页
3/13
Android 自定义歌词同步控件 Android 音乐播放器中,播放音乐的类(即MediaPlayer)在播放音乐的时候,通过MediaPlayer的getCurrentPosition 方法可以得到当前音乐播放的流进度,通过getDuration 可以得到当前音乐总的流大小。因此,我们可以通过这两个方法来判断同步的音乐歌词播放进度。下面,该文档将为大家实现歌词同步,其他音乐播放的东西一概不涉及。 歌词同步相关两个类: SongLyric(歌词对象) 歌词对象实例化即可使用,但必须保证该歌词对象验证通过,即歌词文件存在,切正确实例化。 LyricView(Android 自定义歌词控件) 该歌词控件不可以写在xml 配置文件中,必须使用一个 layout 布局控件存放,使用的时候先从 Activity 中得到layout,然后再将该歌词控件通过layout 的getContext 的参数实例化,最后添加到layout 中,并且将对应的歌词对象 SongLyric 设置到歌词控件中。最后,歌词控件要做到与音乐同步的效果,还得时时刷新歌词控件,这样就有了歌词同步以及滚动的效果。具体实现方法下面讲到,先看看这两个类源码: SongLyric 类,该对象和网上大部分歌词对象一样,这里为了和歌词控件LyricView 配套,多了一部分方法。 package cn.zuxia.android.widget; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.InputStreamReader; import java.util.HashMap; import java.util.Map; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * 歌词对象 * * @author samsung * */ public final class SongLyric { // 歌名 private String title = ""; // 歌手名 private String artist = ""; // 专辑名 private String album = ""; // 偏移时间 private long offset = 0; // 最大时间 private long maxTime = 0; // 歌词内容 private Map lrcs = new HashMap(); // 验证是否通过 private boolean valid = false; public SongLyric(String url) { File file = new File(url); if (file.exists()) { try { // 构建读取器 BufferedReader br = new BufferedReader(new InputStreamReader( new FileInputStream(file), "gbk")); String line = null; while ((line = br.readLine()) != null)...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

Android自定义歌词同步控件

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部