2016-11-02 32 views
1

我想讓視頻的一部分減速,而其餘部分視頻速度正常,就像iOS相機拍攝的慢速模式視頻一樣。怎麼做?我搜索AVFoundation,但什麼都沒發現。iOS如何減慢視頻播放速度的具體持續時間

謝謝!

+0

http://stackoverflow.com/a/7980463/1142743和http://stackoverflow.com/q/2483783/1142743 – Vinodh

+0

這些正在放慢整個視頻速度,我想要的是減緩* *視頻中的特定持續時間**。例如,我想讓10秒-20秒的速度減慢,而0-10秒和20秒的正常速度。 – Steven

+0

你的意思是我可以在視頻播放時減慢播放速度? – Steven

回答

2

如果您只是在回放過程中(而不是導出)創建此效果,您應該可以通過在特定時間更改AVPlayerrate屬性來實現。使用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。

記得在完成時間移除時間觀察者,並確保使用一個未保留的自我引用或塊內的玩家以避免保留週期。

相關問題