iOS如何减慢视频播放速度的具体持续时间

时间:2016-11-02 08:58:15

标签: ios performance avfoundation mode

我想让视频的一部分慢下来,而其余部分是正常速度,就像iOS相机拍摄的慢速模式视频一样。怎么做?我搜索AVFoundation但没有找到任何结果。

谢谢!

1 个答案:

答案 0 :(得分:2)

如果您只是谈论在播放期间创建此效果(而不是导出它),您应该只需在特定时间更改rate AVPlayer属性即可。在需要更改费率时,使用addBoundaryTimeObserverForTimes:queue:usingBlock:获得通知。

CMTime interval = CMTimeMake(10, 1);
NSArray *times = @[[NSValue valueWithCMTime:interval]];

_boundaryTimeObserver = [_avPlayer addBoundaryTimeObserverForTimes:times
                                                 queue:nil
                                            usingBlock:^{
                                                [_weakPlayer setRate:0.5];
                                            }];

费率属性的工作原理如下:

rate = 0.0; // Stopped
rate = 0.5; // Half speed
rate = 1.0; // Normal speed

对于慢动作播放,AVPlayer属性canPlaySlowForward必须设置为true。

请记住在完成时删除时间观察者,并确保使用对自己的未经保留的引用或块内的播放器,以避免保留周期。