我想让视频的一部分慢下来,而其余部分是正常速度,就像iOS相机拍摄的慢速模式视频一样。怎么做?我搜索AVFoundation但没有找到任何结果。
谢谢!
答案 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。
请记住在完成时删除时间观察者,并确保使用对自己的未经保留的引用或块内的播放器,以避免保留周期。