iOS AVPlayer:如何将30fps视频减速到1fps

时间:2012-08-05 23:54:47

标签: ios video avfoundation avplayer frame-rate

我有一个30fps的Quicktime .mov静态图像,我用AVAssetWriter创建。 (它只有10帧左右)。我希望用户能够使用UISlider将其减慢到大约1fps,但是当我将AVPlayer .rate属性从1调低到0时,它不会接近1fps,它只是停止播放(因为0速率有效地停止/暂停它,这是有道理的)。但是如何将播放器降低到大约1fps呢?我想我需要做一些数学来计算实际的比率,但这就是我被困的地方。它会不会像0.000000000000001那样?

谢谢!

1 个答案:

答案 0 :(得分:0)

如果这是我的要求,我会按如下方式处理(Inafziger也在评论中提出)。使用AVAssetReader并为图像滚动我自己的查看器。这样可以使用评论中所述的计时器为您提供精确控制。确保重复使用一些预先分配的图像内存区域(您可以为单个图像腾出空间)。我可能会像CoreAudio一样采取拉动方式。当你需要一个图像从一些调用AVAssetReaders读取函数的图像缓冲管理器类中拉出它。这样,您就可以拥有始终可用的N个缓冲区。这可能有点矫枉过正。我相信AVAssetReader会在初始化时预先解码一些电影。这就是为什么我说你很可能只是使用一个缓冲区来读取图像数据。

关于记忆问题的评论。我相信AVAssetReader和使用创建规则的关联类中有一些函数。