HarmonyOS鸿蒙Next中使用动图组件MovingPhotoView,会不会导致应用存在不可见动效的问题
HarmonyOS鸿蒙Next中使用动图组件MovingPhotoView,会不会导致应用存在不可见动效的问题 使用动图组件MovingPhotoView,会不会导致应用存在不可见动效的问题
可能导致原因有:MovingPhotoView在长按触发播放后,如果组件被遮挡或页面跳转,开发者未监听可见性变化并停止播放,会导致AVPlayer持续运行,当MovingPhotoView从ArkUI树中卸载(如使用if/else条件渲染、懒加载等),若未调用控制器停止播放并置空,可能引起Buffer空转,MovingPhotoView使用AVPlayer播放,同时开启超过3个实例可能导致视频播放卡顿,并加剧功耗问题。
更多关于HarmonyOS鸿蒙Next中使用动图组件MovingPhotoView,会不会导致应用存在不可见动效的问题的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
动态照片本质上一张照片加一个视频合并出来的。你所说的动效就是视频的内容。
如果没有动效,那就是视频内容是静止的。
详见MovingPhotoView组件开发文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/movingphotoview-guidelines
使用MovingPhotoView时,若组件处于可见区域且属性正常,动效均为用户可见。若将其布局置于屏幕外、设置alpha=0或size=0,则动图仍会持续渲染,产生不可见动效,消耗GPU与CPU资源。开发者需确保组件在不可见时及时释放资源。
HarmonyOS Next 中使用的 MovingPhotoView 组件目前不内置对视图可见性的自动检测机制。当页面切换、组件被遮挡或滑出屏幕时,其内部动画会继续运行,这会占用系统资源并产生所谓的“不可见动效”。
要避免此问题,需要开发者在页面的 onPageShow/onPageHide 或组件的可见性回调中主动暂停和恢复动画,以确保动画仅在用户可见时播放。

