libpag
libpag copied to clipboard
App在后台呆了一会,回到前台后,动画停止播放了。
【版本信息】
4.3.47
【平台信息】
iOS 原生
【预期的表现】
播放中的动画,在app退到后台后超过10s中,再回到前台时,动画继续播放。
【实际的情况】
播放中的动画,在app退到后台后超过10s中,再回到前台时,动画停止了,且无法调用play方法继续播放
https://github.com/Tencent/libpag/assets/18586502/2f9a4276-dbd6-421d-977c-fb9dd28ac63b
。
【Demo及附件】
官方demo即可复现
你确认下是否调用了 setRepeatCount 接口,如果没有调用,默认是只播放一次,进入后台后,定时器并没有停止,只是停止了渲染,如果播放次数没有设置或者设置次数较少是会出现你所说的情况,这是正常的 要解决这个问题,增加调用 setRepeatCount(0)即可
@kevingpqi123 上述录屏来自于官方提供的最新demo(未作任何修改),看了demo中的代码已经设置了 setRepeatCount(0)。 `- (void)touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event { if ([self.pagView isPlaying]) { [self.pagView stop]; } else { [self.pagView play]; }
}
/** 初始化PAGView */
-
(void)initPAGView { //读取PAG素材文件 NSString* resourcePath = [self resourcePath]; self.pagFile = [PAGFile Load:resourcePath];
//创建PAG播放视图PAGView self.pagView = [[PAGView alloc] initWithFrame:self.view.bounds]; [self.view addSubview:self.pagView];
//关联PAGView和PAGFile [self.pagView setComposition:self.pagFile]; //3.0中pagView中可以使用setPath直接使用file,setPath在pag中会根据path缓存pagFile,实现一次加载多个地方调用 //[self.pagView setPath:resourcePath]; //3.0中 [self.pagView setFile:self.pagFile]方法被废弃,如果使用setFile则无法通过file对替换数据进行控制;
//设置循环播放,默认只播放一次 [self.pagView setRepeatCount:0];
//播放 [self.pagView play];
[self.view sendSubviewToBack:self.pagView]; }
`
下载地址:https://pag.art/docs/pad-demo-download.html
一样碰到从后台回前台偶发暂停播放
@kevingpqi123 大佬解决下啊,这个描述得够清楚了,官方给的demo都能复现。按道理说是个严重问题啊。。
ios退到后台30秒,回到前台无法播放