提高AVPlayer的最大播放率

目前我正在开发一个应用程序,在这个应用程序中,我非常快速地播放video,高达正常播放速度的20倍。 我现在才意识到, AVFoundation AVPlayer只支持2.0的播放速率。 以更高的速度,video不再stream利地播放。

你有没有关于其他video框架的build议,你可以build议,以解决我的问题?

提前非常感谢!

如果有人仍然坚持这一点,并希望AVPlayer播放比2.0更快的video:

您需要创build一个AVMutableComposition并将时间范围缩放到所需的时间范围。 这样做之后,您可以使用AVPlayer的播放速率进一步倍增,最高可达2倍。

这个答案解释了如何做到这一点。

这是一个Swift 3版本:

 let asset = AVPlayerItem(url: yourURL).asset let newRate = 10.0 let composition = AVMutableComposition() let assetTimeRange = CMTimeRangeMake(kCMTimeZero, asset.duration) do { try composition.insertTimeRange(assetTimeRange, of: asset, at: kCMTimeZero) let destinationTimeRange = CMTimeMultiplyByFloat64(asset.duration, 1/newRate) composition.scaleTimeRange(assetTimeRange, toDuration: destinationTimeRange) let newPlayerItem = AVPlayerItem(asset: composition) yourAVPlayer.replaceCurrentItem(with: newPlayerItem) } catch { // Handle the error print("Inserting time range failed. ", error) } 

myAVPlayer.currentItem.audioTimePitchAlgorithm具有此模式的默认值AVAudioTimePitchAlgorithmLowQualityZeroLatency可用费率:{0.5,0.6666667,0.8,1.0,1.25,1.5,2.0}

audioTimePitchAlgorithm更改为myAVPlayer.currentItem.audioTimePitchAlgorithm = AVAudioTimePitchAlgorithmVarispeed rate from 0,03125x to 32x

/ *! @abstract时间间距algorithm@constant的值
AVAudioTimePitchAlgorithmLowQualityZeroLatency质量低,非常便宜。 适合短暂的快进/倒带效果,低质量的声音。 速率捕捉到{0.5,0.6666667,0.8,1.0,1.25,1.5,2.0}。

@constant AVAudioTimePitchAlgorithmTimeDomain质量适中,价格便宜。 适合声音。 可变率从1/32到32。

@constant AVAudioTimePitchAlgorithmSpectral质量最高,计算成本最高。 适合音乐。 可变率从1/32到32。

@constant AVAudioTimePitchAlgorithmVarispeed高品质,无音调校正。 音高随速率而变化。 可变率从1/32到32。
* /