pengchujin:TCL 电视航拍壁纸的旧帧、杜比视界黑屏与焦点卡顿边界

在 Aerial-TV issue #934 的回复中,pengchujin 说明 TCL 电视无法实时取视频帧,进出 App 时会短暂显示旧静帧;4K 杜比视界屏保切换时出现 1–2 秒黑屏是解码器和显示模式切换的预期代价,改用 4K 或 1080p 可缩短切换;焦点卡顿与 32 位设备未完成 odex/profile 优化有关,可用 `adb shell cmd package compile -m speed -f app.orchard.tv` 对比验证。

作者原文

感谢详细的报告和日志!逐条说明一下:

1、2. 开机、从 App 回来时,先出现一张不动的画面,约 1 秒后才换成正确的影片

这是 TCL 这类电视上的已知限制。Aerial 在这类电视上读不到视频画面:截图会卡顿,从视频文件里取画面会卡死系统的媒体服务。所以壁纸的那张静态图没法跟着影片实时更新,常常是之前某个时候的画面。影片重新加载要 0.5–2 秒(日志里也是这样),这段时间露出的就是那张旧图。小米这类能取到画面的电视没有这个问题。要彻底解决,得在 Aerial 里自己解码视频画面,工作量比较大,暂时还没排上。

3. 进出屏保时,壁纸区域先黑 1–2 秒

选了 4K 杜比视界时这是预期行为。壁纸要先把视频解码器让给屏保,电视切换到杜比视界模式本身也会黑一下。回桌面时,我们特意让黑底等影片出来,免得先闪一张旧图(就是第 1、2 条那张)。按返回键手动进屏保会比等它自动启动慢一点:自动启动时会提前把那一段下载好,手动进入没有。如果介意这段黑屏,可以把「航拍画质」改成 4K 或 1080p,切换会快很多。

4. 焦点切换卡顿

诊断信息显示,Aerial 在你的电视上还没有经过编译优化(odex 93 KB、profile=false),程序是边解释边执行的。这在 32 位芯片上会明显卡。你的 ADB 开着,可以在电脑上执行:

adb shell cmd package compile -m speed -f app.orchard.tv

执行后重启一下 Aerial,看看有没有好转。如果还是卡,麻烦再帮忙对比两种情况并告诉我们:

  • 把壁纸的「播放」改成「静止时」(不一直播放)
  • 把航拍画质改成 1080p

这样可以判断卡顿是来自后面一直在播的 4K 杜比视界影片,还是别的原因。对比完再导出一份诊断信息贴上来就更好了。