我们正在开发一款适用于iOS的简单游戏,特别是iPhone 5S。我们有一个 要求循环播放视频。为了提高性能,我们想播放视频 来自RAM并在后续迭代期间将视频保留在RAM中(无需从闪存驱动器中取出)。这是我们尝试过的,
我们尝试使用媒体框架,因此preparedtoplay函数带来了视频剪辑 从闪存存储,并没有将剪辑保留在RAM中。我们能够用这个来观察这个 iOS乐器。
当我们认为无法做到这一点时,我们将播放器更改为AV基础 播放器而不是使用播放/开始,我们执行搜索回到视频的开头。我们观察了以下内容,
•我们尝试加载各种大小的视频,RAM上分配的内存总是+5 视频大小为10 MB。我们认为这是由于应用程序的大小和运行 应用
•我们尝试加载大型视频,这是160 MB,播放时间为20分钟。在这种情况下 在RAM中只分配了~85 MB。根据我们的假设,大约10分钟 CPU活动增加,表明再次解码。
•当较小的视频播放时,CPU活动保持不变,解码完成后 在视频的迭代1开始之前,不像大视频情况。
虽然Apple没有提供找出视频是否正在从RAM播放的方法,但基于 上面的证据和附上的跟踪表,我们可以安全地假设更小 视频是从RAM完全播放,闪存读取已被最小化? 注意事项:我们在每次循环后给出3分钟无效/保持功能。
开始播放前跟踪:
初始(第一次)播放期间的跟踪:
在初始(第一个)循环保持期间跟踪:
在第二次播放期间跟踪: