如何改变 AVPlayerViewController 的速度?
How to change the speed of AVPlayerViewController?
下面是设置 AVPlayerViewController 的工厂方法。
除了速度控制之外的一切都工作正常。
在这个应用程序的旧版本中,我可以通过简单地设置 player.rate 从半速变为双速。
Double 不再起作用,但 half speed 起作用了,我不确定为什么。
文档说 canPlayFastForward 和 canPlaySlowForward 需要为 true,但是我看不到将它们设置为 true 的方法。
extension AVPlayerViewController {
static func create(url: URL, rate: Float, time: CMTime, delegate: AVPlayerViewControllerDelegate?) -> AVPlayerViewController {
let avPlayerVC = AVPlayerViewController()
avPlayerVC.delegate = delegate
let playerItem = AVPlayerItem(url: url)
// playerItem.canPlayFastForward = true
// playerItem.canPlaySlowForward = true
let player = AVPlayer(playerItem: playerItem)
player.rate = rate
player.seek(to: time)
avPlayerVC.player = player
return avPlayerVC
}
}
所以似乎解决方案是不能将 AVPlayer 的速率设置为 2,但可以将其设置为 1.99。
下面是设置 AVPlayerViewController 的工厂方法。 除了速度控制之外的一切都工作正常。 在这个应用程序的旧版本中,我可以通过简单地设置 player.rate 从半速变为双速。 Double 不再起作用,但 half speed 起作用了,我不确定为什么。 文档说 canPlayFastForward 和 canPlaySlowForward 需要为 true,但是我看不到将它们设置为 true 的方法。
extension AVPlayerViewController {
static func create(url: URL, rate: Float, time: CMTime, delegate: AVPlayerViewControllerDelegate?) -> AVPlayerViewController {
let avPlayerVC = AVPlayerViewController()
avPlayerVC.delegate = delegate
let playerItem = AVPlayerItem(url: url)
// playerItem.canPlayFastForward = true
// playerItem.canPlaySlowForward = true
let player = AVPlayer(playerItem: playerItem)
player.rate = rate
player.seek(to: time)
avPlayerVC.player = player
return avPlayerVC
}
}
所以似乎解决方案是不能将 AVPlayer 的速率设置为 2,但可以将其设置为 1.99。