歌词显示
1、从服务器通过 url 把歌词下载到本地。通过输入流按行读取,每读一行,把这一行的歌词封装到 HashMap<String,String> 中
2、每当更新音乐进度时(1s/次),需要判断当前时间是否需要更新歌词
根据 song_id 获取歌曲信息的接口中 lyric字段是 lrc 歌词,根据链接下载 lrc 歌词。我们用到的接口是:
https://music.163.com/api/song/media?id=167876
因此 UrlFactory 中增加查询歌词的方法
public static String getMusicLyric(String id) {
String url = "https://music.163.com/api/song/media?id=" + id;
return url;
}
返回的 json 数据格式为
MusicModel 中增加下载歌词的方法
public void downloadLrc(final String lrclink, final LrcCallback callback) {
AsyncTask<String,String, HashMap<String,String>> task = new AsyncTask<String, String, HashMap<String, String>>() {
@Override
protected HashMap<String, String> doInBackground(String... strings) {
try {
InputStream is = HttpUtils.getInputStream(lrclink);
String json = HttpUtils.isToString(is);
Log.d("info",