libpag icon indicating copy to clipboard operation
libpag copied to clipboard

App在后台呆了一会,回到前台后,动画停止播放了。

Open petyou opened this issue 1 year ago • 5 comments

【版本信息】

4.3.47

【平台信息】

iOS 原生

【预期的表现】

播放中的动画,在app退到后台后超过10s中,再回到前台时,动画继续播放。

【实际的情况】

播放中的动画,在app退到后台后超过10s中,再回到前台时,动画停止了,且无法调用play方法继续播放

https://github.com/Tencent/libpag/assets/18586502/2f9a4276-dbd6-421d-977c-fb9dd28ac63b

【Demo及附件】

官方demo即可复现

petyou avatar Jan 23 '24 15:01 petyou

你确认下是否调用了 setRepeatCount 接口,如果没有调用,默认是只播放一次,进入后台后,定时器并没有停止,只是停止了渲染,如果播放次数没有设置或者设置次数较少是会出现你所说的情况,这是正常的 要解决这个问题,增加调用 setRepeatCount(0)即可

kevingpqi123 avatar Jan 24 '24 02:01 kevingpqi123

@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

petyou avatar Jan 24 '24 04:01 petyou

一样碰到从后台回前台偶发暂停播放

Creolophus avatar Feb 04 '24 09:02 Creolophus

@kevingpqi123 大佬解决下啊,这个描述得够清楚了,官方给的demo都能复现。按道理说是个严重问题啊。。

petyou avatar Feb 19 '24 07:02 petyou

ios退到后台30秒,回到前台无法播放

DongDian455 avatar Mar 21 '24 09:03 DongDian455