嗨,我有个经典球员
var player = AVPlayer(url: fileUrl)
player.play() 是否有可能设置球员的FPS?例如,我想在30 For播放慢动作视频(240 For)。
我试着
player.play()
player.rate = 0.5但这只播放240 but的120 but视频。
可以在视频播放期间更改FPS。
let timer = Timer.scheduledTimer(withTimeInterval: 1, repeats: false) {_ in
player.rate = 0.5
}这很好,但不能像上面那样设置30 set。
谢谢!!
发布于 2019-11-10 16:44:54
如果我正确地理解了这个问题,你只想放慢内容的速度,所以设置速度是正确的方法(你也可以在内容播放期间这样做)。
如果您想从240到30 fps,而不是它意味着您希望将速率设置为30/240,这意味着1/8。
因此,这应该可以做到:
player.rate = Float(1)/Float(8)您还应该将playerItem audioPitchAlgorithm设置为lowQualityZeroLatency以外的其他东西,以便允许它在0.5以下到1/32之间。
该算法适用于短的快进和回绕效果以及低质量的语音。这个速率是{0.5,0.666667,0.8,1.0,1.25,1.5,2.0}。
我测试的这个片段达到了1/8的速度。
let playerItem = AVPlayerItem(url: URL(string:"https://devstreaming-cdn.apple.com/videos/streaming/examples/img_bipbop_adv_example_ts/master.m3u8")!)
playerItem.audioTimePitchAlgorithm = .varispeed
let avPlayer = AVPlayer(playerItem: playerItem)
let vc = AVPlayerViewController()
vc.player = avPlayer
avPlayer.rate = 0.125
self.present(vc, animated: true)https://stackoverflow.com/questions/58787821
复制相似问题