如何在动画贴纸包应用程序中协调不可预测的播放速度?

时间:2017-01-29 17:15:06

标签: ios swift xcode animation optimization

编辑:我已经运行了更多有趣结果的测试,更新列于下表。

似乎我将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帧速率。

enter image description here

0 个答案:

没有答案