现在几乎每个版本中都提过音乐播放器中歌曲显示乱码的问题,现在归纳一下主要有两个现象:

1:当前语言为英文时,歌曲信息显示乱码

2:中文状态下,歌曲信息显示乱码

第一种情况出现的原因是因为在英文模式下,MediaScannerClient::setLocale函数没有对“en”设置相应的编码格式,所以中文会出现乱码。

修改方法如下:

else if(!strncmp(locale,"en",2)) mLocaleEncoding = kEncodingGBK;

第二种情况比较复杂,我们分析源码:

for(int i = 0; i < mNames->size(); i++)

encoding& = possibleEncodings(mValues->getEntry(i));

上面的代码是先对所有的Tag进行编码检测,然后进行&操作。

if(encoding & mLocaleEncoding)

convertValues(mLocaleEncoding);

然后检测是否存在有与当前编码方式匹配的,如果有则进行转换,到这里我们是否可以假设一种情况:

如果某个Tag不需要进行转换,另外一个Tag中含有当前的编码方式,于是所有的tag都将通过convertValues函数进行转换,然后乱码现象出现了。这个问题是常见的,我们会发现有些歌曲它的名字是正常的,但是艺术家信息却是乱码,这就是造成这种现象的原因。

于是我们有了以下的处理方法:对单个Tag进行检测转换。

for(int i = 0; i < mNames->size(); i++) {

encoding& = possibleEncodings(mValues->getEntry(i));

if(encoding & mLocaleEncoding)

convertValues(mLocaleEncoding,i);

}

我们只需要对需要转换的Tag进行处理,不需要的就不处理。

以上只是我的个人想法,有不对的地方还请指出来,大家有好的方法也可以交流下。

关于MP3的Tag乱码问题相关推荐

  1. linux mp3 乱码,Linux下MP3的TAG乱码问题解决方法

    复制代码 代码如下: sudo apt-get install python-mutagen 然后使用mid3iconv工具 Usage: mid3iconv [OPTION] [FILE]... M ...

  2. Mp3tag中文设置方法(解决mp3歌曲名乱码,出现问号的问题)

    解决Mp3tag中文设置方法(解决mp3歌曲名乱码,出现??问题) Mp3tag(mp3标签修改器)软件是MP3文件ID3-Tag信息修改器.所谓ID3-Tag 信息,就是在MP3文件中加入曲名.演唱 ...

  3. Android 播放mp3 tag乱码分析之java 篇

    在Java程序中的字符,不管是中文的还是英文的,都是占用二个字节,这个结论我们大家都烂熟于心了,但是纠结是为什么呢?     其实是因为 char 类型 就好比双字节 的无符号整数   .   UTF ...

  4. Android 播放mp3 tag乱码分析之jni 篇

    Android media 扫描mp3文件这个重任是cpp来完成的.但是tag解析工作是上层java完成的. 乱码问题的根源是:   java内部是使用16bit的unicode编码(UTF-16)来 ...

  5. ubuntu 13.10 Rhythmbox不能播放mp3 和中文乱码的问题

    1.ubuntu 13.10 Rhythmbox不能播放mp3的解决方法 软件中心搜索(ubuntu额外的版权受限软件)不带括号 2.中文乱码问题解决方法: 终端顺序操作 : 1.  sudo ged ...

  6. Linux下mp3文件的乱码问题

    虽然现在很多时候都在linux下,但还是挺舍不得windows的,原因两个:千千静听和QQ空间.QQ空间不进也罢,但是音乐一定少不了.    我的linux有两个音频播放器:Amarok和Kaffei ...

  7. 解决《空中英语教室》Super MP3光盘繁体字乱码的方法

    非常喜欢<空中英语教室>这个英语教学节目,但是它的Super MP3光盘没有简体版,繁体版运行在简体Windows系统是乱码.以前有人介绍过一些解决方案: 1,用Microsoft的App ...

  8. 计算机读光盘出现乱码,解决刻录音乐光盘mp3出现中文乱码的方法

    图片: 图片: 图片: 图片: 图片: 1.目前,很多人自己刻录音乐光盘以便在车载播放器里播放,但往往刻录出来的CD光盘会显示乱码,导致播放出来的音乐看不到是什么歌名和哪个歌手唱的.用nero等刻录音 ...

  9. 任天堂计划在2021年升级交换机控制台和主要游戏

    By Takashi Mochizuki 高木望月 Nintendo Co. plans to debut an upgraded model of its Switch console next y ...

最新文章

  1. 设计模式——控制反转依赖注入
  2. 对用户输入内容进行字数提示功能
  3. Docker 常用命令整合!!!带你一起理解和复习每个操作命令!!!带操作图,不会也能看懂的!!
  4. Hadoop(一)之初识大数据与Hadoop
  5. 收集网络状态(Ping),并用邮件通知管理员
  6. Sublime Text 3 import Anaconda 无法正常补全模块名解决办法
  7. C# 类和结构的成员
  8. 在Excel中用VBA制作俄罗斯方块游戏
  9. 学习C++程序设计需要什么基础
  10. 让Fireball CodeEditor控件支持中文
  11. 怎么重置imac_如何重置Mac Pro?四种重置Macbook Pro的方法
  12. 超级爆笑小学生作文大全,这孩子太搞了
  13. Spring boot 事物管理
  14. jQuery 从零开始学习 (二) 选择器
  15. NanoPi-K2 控制GPIO
  16. jstree 使用API
  17. xhr请求status是failed的解决办法
  18. Charles 配置 https
  19. 2022苹果春季发布会带来新款iPhoneSE价格预计2500左右
  20. 383计算机毕业设计

热门文章

  1. 【Qt】Scene中获取指定类型的自定义图元
  2. 永久性重定向临时性重定向
  3. vue+vant2—篇3—定制主题色
  4. MFC树控件的属性和初始化(基于对话框的编程)
  5. 如何让你的文案“一箭穿心”?
  6. Node.js 在命令行下执行Console.log()命令时,第二行会打印undefined的原因
  7. Martin Thompson:协议设计与实现
  8. 比大龄单身更可怕的是大龄测试,35的测试是失业or转行?
  9. me shy是什么歌 抖音make_原来这才是抖音上火爆的5首英文歌的原版?!
  10. 22-05-19 西安 javaweb(04) xml、DOM4J,Xpath、 tomcat应用服务器、HTTP协议