前言

VLC是一款优秀的开源视频播放软件,它的大名早就如雷贯耳,最近终于有机会下载安装试试看了。非常强大的功能是可以加载ass格式的字幕,对比一款文件管理软件仅仅是加载同名称的srt字幕文件,这个功能可以说是很强大了。然而使用的时候却出现了问题,中文字幕无法显示,全部都是“口口口”,下面一行英文倒是出来了,花费了一整天的时间,终于搜出来了解决方案。

设备环境

我的安卓手机是HTC E9 pw,安卓系统是5.0.2,VLC下载的是最新版本3.2.12.

我的电脑是Windows10,但是用linux系统应该adb更好装。

乱码原因

之前搜到的结果有人说是编码格式错乱,但实际上是字体缺失,这个问题已经在两年前修复了,参照这个博客进行修改就可以。

VLC使用的字体是/system/fonts/DroidSans-Bold.ttf,这个里边只是英文,所以肯定中文乱码了呀。

解决办法

按照上面的资料,VLC问题修复后,加入了一个新的字体/system/fonts/NotoSansCJK-Regular.ttc.也就是VLC会先去查找这个ttc文件,如果找不到,那不好意思,还是加载那个没有中文的字体,显示乱码也不管了。所以只要下载这个字体就可以了。

1.下载字体

点击下载

2.安装安卓SDK

这仅仅是为了使用adb工具来给手机里传输字体文件,以及修改字体文件权限。具体方法我就不写了,教程很多。

3.ROOT手机

这仅仅是为了使用adb工具来给手机里传输字体文件,以及修改字体文件权限。我这里是参考别人的教程,下载root工具KingRoot完成的。

4.拷贝字体文件

1.安卓的/system文件夹是不允许直接拷贝文件进去的,所以先拷贝字体文件到/sdcard/Download文件下

adb.exe push E:\StudyProject\AndroidProject\NotoSansCJK-Regular.ttc /sdcard/Download

2.把字幕文件拷贝到/system文件夹下,需要root权限

adb.exe shell
su
cp /sdcard/Download/NotoSansCJK-Regular.ttc /system/fonts

3.更改字体权限

这时我们查看字体文件权限

#在adb shell下执行
cd /system/fonts
ll | grep ttc #查看新字体权限

发现新字体权限为"-rw-r-----"而其他字体的权限为"-rw-r--r--",也就是说除了root及其同组用户可以使用这个字体,其他用户都不能用,这显然需要更改。

这里我改了半天莫名奇妙改好了。首先重新挂载解决/system不允许修改的属性,然后使用"chmod 644"指令修改权限。

#在adb shell下执行
mount | grep system #查看system是否允许读写

如果显示/dev/block/platform/mtk-msdc.0/by-name/system /system ext4 rw,seclabel,relatime,data=ordered 0 0,注意这里的”rw"是允许读写,否则出现"ro"表示只读,要remount,这个指令我没有使用,这里就不写了。

#在adb shell下执行
chmod 644 /system/fonts/NotoSansCJK-Regular.ttc#修改添加其他人可读

这是再查看字体文件的权限,如果和其它字体文件一致了就可以了。

#在adb shell下执行
cd /system/fonts
ll | grep ttc #查看新字体权限

成果

字幕这样就可以正常加载了

注意事项

  1. adb shell里的chomd指令只允许以数字的方式修改权限,如果写成chomd o+r xxx 会提示bad mod.
  2. 对于时间宝贵的人来说费这么大劲很不值得。时间宝贵的人就不要搞了,投入到更有价值的事情上吧。
  3. 命令行是个神奇的东西,一行指令能毁天灭地,请慎重使用root权限。

资料引用

问题提出:https://code.videolan.org/videolan/vlc-android/-/issues/216

解决方案:https://craftwarblog.blogspot.com/2018/05/android-vlc-display-chinese-subtitle.html

修复源码:https://git.videolan.org/gitweb.cgi/vlc.git/?p=vlc.git;a=commitdiff;h=8a15910d9f8e7d860f29d0e9803c756970d8cf74;hp=4b898d321d77436204b573d066c61261d037f275

Android VLC 加载ass字幕乱码问题相关推荐

  1. 浅析Android字体加载原理

    浅析Android字体加载原理 前言 之前在处理系统字体问题的时候,可借鉴的资料很少,遇到了很多坑,不得不了解Android字体加载原理,现抽空写一篇总结,来加深自己对这块的理解. 内容 概述 And ...

  2. android edittext html 图片,Android EditText加载HTML内容(内容包含网络图片) -电脑资料...

    android中的Html.fromHtml可以用来加载HTML的内容,fromHtml有三个参数需要设置,第一个是要显示的html内容,第二个就是要说的重点,ImageGetter,用来处理图片加载 ...

  3. android 动态 dex,Android 动态加载dex

    首先如果仅仅是因为64K method的问题可以直接看这里DexGuard.Proguard.Multi-dex给出的解决方案. 本文主要讨论从编译层面,dex动态加载器选择层面以及安全层面讨论dex ...

  4. Android动态加载技术初探

    一.前言: 现在,已经有实力强大的公司用这个技术开发应用了,比如淘宝,大众点评,百度地图等,之所以采用这个技术,实际上,就是方便更新功能,当然,前提是新旧功能的接口一致,不然会报Not Found等错 ...

  5. Android动态加载黑科技 动态创建Activity模式

    基本信息 Author:kaedea GitHub:android-dynamical-loading 代理Activity模式的限制 还记得我们在代理Activity模式里谈到启动插件APK里的Ac ...

  6. Android动态加载进阶 代理Activity模式

    基本信息 作者:kaedea 项目:android-dynamical-loading 技术背景 简单模式中,使用ClassLoader加载外部的Dex或Apk文件,可以加载一些本地APP不存在的类, ...

  7. Android动态加载技术

    基本信息 Author:kaedea GitHub:android-dynamical-loading 我们很早开始就在Android项目中采用了动态加载技术,主要目的是为了达到让用户不用重新安装AP ...

  8. android 双 webview,Android webview加载页面

    释放双眼,带上耳机,听听看~! Android webview加载页面 private WebView webView; public void init() { webView = (WebView ...

  9. Android应用开发提高系列(4)——Android动态加载(上)——加载未安装APK中的类...

    前言 近期做换肤功能,由于换肤程度较高,受限于平台本身,实现起来较复杂,暂时搁置了该功能,但也积累了一些经验,将分两篇文章来写这部分的内容,欢迎交流! 关键字:Android动态加载 声明 欢迎转载, ...

  10. android jar 加入图片,Android动态加载外部jar包及jar包中图片等资源文件

    Android动态加载外部jar包及jar包中图片等资源文件 Android应用程序由Java开发,因此Java中许多实用的特性,在Android中也有体现.动态加载Class,也就是外部jar包,在 ...

最新文章

  1. Swift 中使用 SQLite——批量更新(事务处理)
  2. 学习AI可能不需要那么多数学知识:20小时进阶计划
  3. 【其他】配置JIRA
  4. weblogic服务器启动报错
  5. python3编码声明_python3编码问题汇总
  6. 作家百态之二:山南海北
  7. 如何从零开始设计一颗芯片?
  8. 补习系列(13)-springboot redis 与发布订阅
  9. JSON.stringify()实现原理
  10. 20201219:力扣219周周赛题解
  11. python 文件名以数字开头_python-如何使XML标记以数字开头?
  12. 【DIOCP开源项目】实际应用案例
  13. 新手机出现陌生女人照片,客服:大数据时代可能性有很多
  14. openCV5-getTickCount
  15. 高速公路坐标高程计算软件3.3版本发布
  16. 华为模拟器linux,华为ENSP模拟器 官方安装版
  17. c语言头文件下载大全,C语言头文件大全
  18. 12306验证码分割
  19. linux用gzip文件,Linux中的Gzip命令
  20. python在tk界面播放本地视频_tkinter做一个本地视频播放器(2)——弹幕

热门文章

  1. python算法精解pdf_算法详解(卷1)算法基础 PDF 完整高清版
  2. python(三):时间窗口
  3. DOM SAXReader
  4. 推荐几个优秀的求职简历模板(附电子版个人简历word下载 )
  5. 【最全攻略】拼多多商家自研系统接入流程
  6. 区块链+电子档案解决方案
  7. AlphaGo来了,终结者不远了
  8. Adobe Axure RP中后台管理系统全套通用交互原型设计模板
  9. Python爬虫——全网获取音乐
  10. 485终端电阻的重要性