编辑:我已经运行了更多有趣结果的测试,更新列于下表。
似乎我将APNG的帧和帧率的数量设置为 16 , 32 , 48 或 64 ,Sticker Pack应用程序在消息中以预期的速度播放动画,一切看起来都正确。
但为什么呢? 我似乎无法解释它。
这可能是由于64位处理吗? iOS或消息中的秘密怪癖?或其他什么?
问题
这里有什么动画贴纸播放?
我已经阅读了开发者网站上的详细信息 似乎没有任何可靠的技术细节 贴纸包应用程序和帧速率限制。
- 为什么动画贴纸无法在设备上的消息中以预期的速度播放?
- 为什么30,45和60帧的贴纸播放速度较慢?
- 如何确保消息始终以预期和正确的速度播放贴纸包?
- Sticker Pack应用程序的帧速率限制是什么?
背景
我正在使用Sticker Pack应用程序在Xcode中进行实验,创建一个动画贴纸包。但是,根据所使用的帧数,创建的贴纸包会导致无法预测的动画播放速度。
iOS模拟器上的消息不能很好地显示动画贴纸包,Mac上的消息也会产生不可预测的播放效果,所以我在设备上测试,iPad mini(A7处理器,M7运动协处理器) ,运行iOS 10.2.1。
(显然,目标是使用最少量的帧来减少系统负载并保留电池。但是有些动画需要高帧率才能获得流畅的流畅播放,例如,帧图像高的动画对比度和很多视觉动作。)
测试
我使用过动画PNG(APNG)文件。我有四种APNG文件变体,包括每秒15,30,45和60帧(FPS)。每个文件的完整动画周期持续时间为1秒。动画永远重复。
(最初我尝试了单独的图像序列并让Xcode编译它们,但是这些更难预测,创建更大的文件大小,在设备上加载多个贴纸的速度慢,并且随着项目中贴纸数量的增加导致Xcode挂起。 )
结果
在下表中,帧速率为30和45的动画播放速度慢1.5倍,而帧速率为60的动画播放速度慢2倍。我原以为所有的动画都会持续相同的时间。
(在Xcode中加载单个图像序列而不是APNG时,60帧动画正常播放,但由于Xcode编译的文件大小较大,贴纸在使用时会崩溃。)
表。 APNG测试,15,30,45和60帧速率。更新:APNG 16,32,48和64帧速率。