最近在做Android音乐播放器,在读取本地歌词的时候,老是乱码,使我很郁闷:今天在网上看到一个文件转码的文章,彻底解决了我的乱码问题,这样我就不用自己去手动的转码lrc歌词文件你的编码了,现在与大家分享一下这一文章:

[java] view plaincopy
  1. package com.qgmobile.utils;
  2. import java.io.BufferedInputStream;
  3. import java.io.BufferedReader;
  4. import java.io.File;
  5. import java.io.FileInputStream;
  6. import java.io.IOException;
  7. import java.io.InputStreamReader;
  8. /**
  9. * 转换文件的编码格式
  10. * @author yangchuxi
  11. *
  12. */
  13. public class ConvertFileCode {
  14. public String converfile(String filepath){
  15. System.out.println("ConvertFileCode--------->"+filepath);
  16. File file=new File(filepath);
  17. FileInputStream fis=null;
  18. BufferedInputStream bis=null;
  19. BufferedReader reader=null;
  20. String text="";
  21. try {
  22. fis=new FileInputStream(file);
  23. bis=new BufferedInputStream(fis);
  24. bis.mark(4);
  25. byte[] first3bytes=new byte[3];
  26. //   System.out.println("");
  27. //找到文档的前三个字节并自动判断文档类型。
  28. bis.read(first3bytes);
  29. bis.reset();
  30. if (first3bytes[0] == (byte) 0xEF && first3bytes[1] == (byte) 0xBB
  31. && first3bytes[2] == (byte) 0xBF) {// utf-8
  32. reader = new BufferedReader(new InputStreamReader(bis, "utf-8"));
  33. } else if (first3bytes[0] == (byte) 0xFF
  34. && first3bytes[1] == (byte) 0xFE) {
  35. reader = new BufferedReader(
  36. new InputStreamReader(bis, "unicode"));
  37. } else if (first3bytes[0] == (byte) 0xFE
  38. && first3bytes[1] == (byte) 0xFF) {
  39. reader = new BufferedReader(new InputStreamReader(bis,
  40. "utf-16be"));
  41. } else if (first3bytes[0] == (byte) 0xFF
  42. && first3bytes[1] == (byte) 0xFF) {
  43. reader = new BufferedReader(new InputStreamReader(bis,
  44. "utf-16le"));
  45. } else {
  46. reader = new BufferedReader(new InputStreamReader(bis, "GBK"));
  47. }
  48. String str = reader.readLine();
  49. while (str != null) {
  50. text = text + str + "/n";
  51. str = reader.readLine();
  52. }
  53. System.out.println("text"+text);
  54. } catch (Exception e) {
  55. e.printStackTrace();
  56. }finally{
  57. if (fis!=null) {
  58. try {
  59. fis.close();
  60. } catch (IOException e) {
  61. e.printStackTrace();
  62. }
  63. }
  64. if(bis!=null){
  65. try {
  66. bis.close();
  67. } catch (IOException e) {
  68. e.printStackTrace();
  69. }
  70. }
  71. }
  72. return text;
  73. }
  74. }

Android音乐播放器读取歌词.lrc文件乱码问题解决方法相关推荐

  1. Android应用开发--MP3音乐播放器滚动歌词实现

    Android应用开发--MP3音乐播放器滚动歌词实现 2013年6月2日  简.美音乐播放器开发记录 -----前话 有网友给我博客评论说,让我借鉴好的Android代码,代码贴出来的时候最好整体先 ...

  2. Android应用开发 MP3音乐播放器滚动歌词实现

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! Andr ...

  3. 乐乐音乐:Android音乐播放器及动感(KTV)歌词相关博客汇总

    相关简介 Java Swing PC版本乐乐音乐播放器 乐乐音乐PC播放器单机版本,支持ape,wav,flac,mp3等多种格式,支持动态ksc.hrc.krc歌词文件和支持和显示翻译歌词和音译歌词 ...

  4. Android音乐播放器源码(歌词.均衡器.收藏.qq5.0菜单.通知)

    一款Android音乐播放器源码,基本功能都实现了 qq5.0菜单(歌词.均衡器.收藏.qq5.0菜单.通知) 只有向右滑动出现,菜单键和指定按钮都还没有添加. 源码下载:http://code.66 ...

  5. android版音乐播放器开发教程,Android音乐播放器开发文档(20200907152026).pdf

    Android 音乐播放器 撰写人:张 XX 2011-3-15 一. 问题定义 本软件是为了用户智能手机 Android 而开发的一套智能软件, 提供在线 下载音乐,在线播放音乐,读取 SD 卡音乐 ...

  6. 基于android音乐播放器的设计

    本科毕业论文(设计)诚信声明 本人郑重声明:所呈交的毕业论文(设计),题目<---基于android音乐播放器的设计----------->是本人在指导教师的指导下,进行研究工作所取得的成 ...

  7. Android音乐播放器开发(2)—登录

    1. 说明 本音乐播放器基于Android开发,原为我和另外两个小伙伴在上学期间一起做的一个小项目,近来有时间整理一下.之前我有文章已经介绍了播放界面的功能实现(Android音乐播放器开发),但介绍 ...

  8. android七大主流Android音乐播放器横向评测

    随着智能手机和3G网络的普及,移动互联网日益成为人们生活娱乐的重心之一.在音乐领域,竞争也十分激烈,在PC之后,几大提供音乐服务的厂商正在加紧占据手机客户端. 本期我们在Android平台挑选了七家国 ...

  9. android 音乐播放器论文,毕业论文:ANDROID音乐播放器

    用于设置歌曲播放进度条和显示当前播放时间和总时间.第四个用于显示播放控制和音量进度条. (3)界面的初始化操作 Android的每一个可视化界面,都有其的唯一的布局配置文件,该文件里面有各种布局方式, ...

  10. 基于android音乐播放器的设计与实现

    目 录 第1章 引言 4 1.1 项目背景 4 1.2 编写目的 4 第2章 系统需求分析 5 2.1 功能需求 5 2.1.1 播放器基本控制需求 5 2.1.2 网络歌曲需求 6 2.1.2 歌词 ...

最新文章

  1. 在CentOS 6.9 x86_64的OpenResty 1.13.6.1上使用LuaRocks示例
  2. C#未来新特性:静态委托和函数指针
  3. php switch换界面,php switch的“高级”用法详解
  4. XCTF-Reverse:insanity
  5. java正则表达式 ^expr 和 [^expr] 和 ^[^expr]的比较
  6. Ubuntu下安装Python3(与旧Python2版本共存)
  7. php的Allowed memory size of 134217728 bytes exhausted问题解决办法
  8. 我的世界服务器氪金系统怎么做,[经济]PPRMB销售系统 1.3.1 —— 地图扫码自动到账,氪金系统如此简单[全版本]...
  9. 我用wget下载CentOS镜像文件
  10. [深度学习] loss不下降的解决方法
  11. 职场攻略:每天淘汰自己的不足
  12. 开源分布式数据库中间件 DBLE
  13. Java查找算法-17-二分查找
  14. docker目录 /var/lib/docker/containers 日志清理
  15. 电脑网络设置出现红叉解决办法,详细步骤并配图,附网盘链接,亲测有效
  16. 三星java安装_三星F488E的JAVA安装方法
  17. 是男人,不妨试试避孕药吧!
  18. 剪断的翅膀,如何起飞
  19. 2019/03/20 格林威治时间(Tue Jan 01 00:00:00 CST 2019)[ Date ]转化 为 [ 2019-01-01 10:10:10 ]
  20. 常用五金紧固件选择表

热门文章

  1. 源自神话的写作要义之英雄之旅
  2. 2019牛客暑期多校训练营(第八场) Beauty Values
  3. 2020全国高校计算机能力挑战赛(word模拟题)
  4. 入门企业品牌短视频运营
  5. 人,要活得明白。活到极致,就是素与简。
  6. Mac浏览器提示安装证书错误,如何修复 Mac 上的无效证书错误
  7. VS+Qt手动生成moc文件
  8. ardupilot 关于设备车Rover的学习《3》------模式控制
  9. win10升级助手链接
  10. 窗口最大化最大最小化关闭按钮超出屏幕 WM_GETMINMAXINFO