1)通过地址查询出歌词的地址。(这里楼主用URLConnection)
2)通过歌词地址缓冲歌词文件。(这里楼主用URLConnection)
3)加载缓冲好的歌词文件。
上面说的看起来还是比较容易,楼主自己写了个demo,是一个[Java](()工程,发现没啥问题,正常加载歌词文件。
等到[Android](()上,第一步就跪了。发现URLConnection的getInputStream()抛出一个io异常,简直要命,折腾了半天才发现是因为带了[http://gec 《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》无偿开源 徽信搜索公众号【编程进阶路】 i.me/api/lyric/安静/周杰伦](()中文路径。由于默认是gbk,网络传输为utf-8,所以要把中文转码,URLEncoder.encode(str,“utf-8”);即可。
到了第2步,问题又出现了,歌词乱码。解决办法,用字符流操作比较合适,还要注意同一编码。
[java] [view plain](() [copy](()
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NPMunut2-1650775496168)(https://code.csdn.net/assets/CODE_ico.png)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-z8yBkxu7-1650775496169)(https://code.csdn.net/assets/ico_fork.svg)]
-
package com.huwei.sweetmusicplayer.util;
-
import java.io.BufferedReader;
-
import java.io.BufferedWriter;
-
import java.io.File;
-
import java.io.FileOutputStream;
-
import java.io.IOException;
-
import java.io.InputStreamReader;
-
import java.io.OutputStreamWriter;
-
import java.io.PrintWriter;
-
import java.io.UnsupportedEncodingException;
-
import java.net.HttpURLConnection;
-
import java.net.MalformedURLException;
- <