最近一个月,我微信里的表情包突然开始闹脾气。最开始是发出去的表情包在聊天界面里会上下抖动,像手机开了振动模式一样,看着眼晕。后来更离谱,有的表情包点开大图后,画面自己会左右晃动,根本没法看。我在网上搜了一圈,发现遇到这问题的不止我一个,但每个人的原因都不一样。今天就把我这周折腾出来的经验写下来,给遇到同样情况的微信用户做个参考。
先分清是哪种抖动
我一开始以为所有抖动都是同一个毛病,后来才发现得先分清楚情况。第一种是表情包发送后在聊天列表里自己动,不用点开就能看到画面在跳。第二种是点开表情包大图后,图片在查看界面里抖。第三种最诡异,是表情包下载的时候显示正常,但发送给别人后,对方看到的画面是抖的。这三种情况的解决方法完全不一样,搞混了只会白费功夫。
第一种抖动:聊天列表里自动跳
这种我最早遇到,发出去一个动态表情包,结果它在对话框里像抽风一样不停上下动。我先是重启了微信,没用。然后去设置-通用-存储空间里清理了缓存,大概清了两个G,当时好了几个小时,但第二天又犯。后来我试着把那个出问题的表情包删掉重新从表情商店下载,还是抖。最后我发现,只要把手机系统字体调回默认大小,这种抖动就消失了。估计是字体缩放影响了表情包的渲染帧率,属于系统兼容性问题。
第二种抖动:点开大图后画面晃
这种更让人崩溃。比如朋友发来一个搞笑表情包,我点开想存下来,结果图片在查看模式里一直左右晃,根本截不了图。我一开始以为是手机屏幕问题,还专门去售后检测了,人家说屏幕没问题。后来我试了试把微信更新到最新版本,居然好了。原来这种抖动是微信版本过旧导致的,老版本在渲染某些高帧率GIF时会出错,更新到8.0.30之后就没再出现过。
第三种抖动:发送后对方看到的是抖的
这个最坑。我自己手机上看是正常的,发出去后朋友说一直在抖。我一开始不信,拿另一个手机试了下,还真是。后来发现,这种问题往往出在超大尺寸表情包上。有些表情包原图是几MB的,微信发送时会自动压缩,压缩过程中如果网络信号不好,就会导致帧数据丢失,画面就抖了。这种我试过在Wi-Fi和流量之间切换,也试过重启路由器,最后发现只要把那个表情包用图片编辑功能稍微裁剪一下尺寸,让文件变小一点再发,就完全正常了。
其他可能的原因
除了上面三种,我还遇到过一种情况,就是微信运动和小程序同时开着的时候,某些表情包会偶尔抖一下。这个我没办法稳定复现,但关掉后台刷新功能后,频率确实低了很多。另外,如果手机开了省电模式,也容易让表情包动画掉帧,看起来就像在抖。这些都是系统资源分配的问题,不算微信本身的bug。
补充方案:一个笨办法
上面说的都是常规排查,最后再讲个我后来才发现的偏方。如果你试了所有办法还是抖,尤其是那种自定义表情包(不是从商店下载的),可以试试把表情包从微信里导出到手机相册,然后用系统自带的图片编辑把它重新保存一次,再添加回微信。我用的工具是手机相册自带的编辑功能,没装额外软件。这个方法的好处是能重新编码图片数据,把之前损坏的帧修复掉,而且不用下载任何东西。但限制也很明显:只能处理静态的或者帧数很少的简单表情包,如果是那种特别复杂的动态表情包,重新编辑后动画会丢失,变成一张静态图。所以这个方法只适合那些你特别想保留、又找不到原图的旧表情包。
折腾这一周下来,我的经验就是:先看是哪种抖动,再对症下药。大部分情况下,清理缓存和更新微信能解决七八成问题。剩下的要么是网络问题,要么是表情包本身文件损坏。希望这篇东西能帮到跟我一样被表情包抖动折磨过的人。