Skip to content

PAGImageView在detach时存在性能问题,Android一些操作可以在子线程中,去优化性能? #2657

Answered by kevingpqi123
L-Evan asked this question in Q&A
Discussion options

You must be logged in to vote

1、 对于 pag 而言,播放的过程中渲染是在子线程渲染的,只有上屏在主线程,不需要业务方额外操作。
对于销毁的时候,也就是你提到的 detach,由于 pag 渲染的 Surface 是由当前页面提供的,如果销毁的时候处于播放状态,需要等待当前帧播放完才能销毁,渲染的过程中直接把 Surface 销毁了可能会导致一些 crash,会执行 pagPlayer.setSurface(null); PAGPlayer 内部是线程安全的,这里会存在锁等待,等待当前帧渲染完成

你这边使用的是 PAGImageView, 出现这个问题的另外一个原因是整个 pag 文件的渲染内容没有缓存完成页面已经销毁,如果缓存了完整数据,不会出现你这边遇到的问题

2、关于第二个问题,分为两种情况:
PAGImageView:就是上面你提到的监听播放进度修改播放进度
PAGView:还有一种处理方式,基于 pag 的组合模式,新创建一个 PAGComposition,将 pag 文件的 PAGComposition添加进去,然后再添加 后边需要播放的一部分,具体可以参考下官方 demo

Replies: 1 comment

Comment options

You must be logged in to vote
0 replies
Answer selected by kevingpqi123
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Q&A
Labels
None yet
2 participants