阅读:5162回复:2

Amlogic柬埔寨客户IPTV字幕会消失的问题

楼主#
更多 发布于:2020-01-03 20:29
7.1.2平台版本公版默认不支持字幕,我在MediaPlayer中增加了AIDL调用,调用了原厂的字幕service,实现了字幕功能。
在此基础上,客户长时间煲机测试发现:字幕煲机10小时后,消失不显示了。
============================================
叫客户帮忙抓取了log,查找log发现后面subtitle的pts都是0.

图片:aaaa.png



可以明显看到在这个时间点,pts突然从ff7b9c00变成了0,于是我去排查代码,理清字幕的调用流程如下:

图片:bbbb.png



以上就是完整的代码流程。我发现上面通过传入MediaPlayer.getCurrentPosition来获取当前的码流时间,然后调用SubtitleService的远程方法,获取当前这个时间点的字幕信息。通过按照以上的流程排查,结合打印,我发现如下:

图片:cccc.png



这个打印是上层调用SubtitleService获取当前时刻的字幕packet的打印,我发现上层的时间重置了,后面排查发现打印:

图片:dddd.png



是由于客户的实时码流时间重置了。
后面通过排查代码和结合打印信息:

图片:eeee.png



图片:ffff.png



上层的获取显示的pts已经是重0开始之后的较小的pts时间,而底层缓存的还是老的字幕,导致时间差异太大,直接返回了。
知道了原因,我们就需要在码流时间重新归零后,将目前已经缓存的清理掉,一些字幕相关的变量做一个复位。这样我们就不会出现这个问题啦。

具体的修改方法,等煲机验证通过确认了在更新出来。
If you have nothing to lose, then you can do anything.
沙发#
发布于:2020-01-06 09:18
[url]http://190.lsal.cn/195/1329.gif?0728100424873[/url]
板凳#
发布于:2020-02-21 16:34
最终确认修改如下位置修复问题:

图片:cc.png

If you have nothing to lose, then you can do anything.
游客

返回顶部