我正在构建一个使用youtube-ios-player-helper库来播放YouTube视频的iOS应用。我正在尝试设置播放速度,但没有任何反应:
class PlayerViewController: UIViewController {
private let player = YTPlayerView()
override func viewDidLoad() {
super.viewDidLoad()
player.delegate = self
view.addSubview(player)
setupPlayerConstraints()
player.load(withVideoId: "123456")
// Tried here, but nothing change:
print("Available playback rates: \(String(describing: player.availablePlaybackRates()))")
player.setPlaybackRate(2.0)
}
}
extension PlayerViewController: YTPlayerViewDelegate {
func playerViewDidBecomeReady(_ playerView: YTPlayerView) {
player.playVideo()
}
func playerView(_ playerView: YTPlayerView, didChangeTo state: YTPlayerState) {
switch (state) {
case.playing:
// Tried here, but again, nothing change:
print("Available playback rates: \(String(describing: player.availablePlaybackRates()))")
player.setPlaybackRate(2.0)
default:
break;
}
}
}
如上面的代码所示,我已尝试在加载视频后设置播放速度,以及播放器将其状态更改为playing
时。在任何时候都没有改变速度。
此外,player.availablePlaybackRates
在两种情况下均返回nil(这很奇怪,因为当我使用YouTube应用观看同一视频时,我可以更改播放速度。)
我知道设置播放速度is a suggestion to the player,但在官方YouTube应用中,更改速度适用于我正在我的应用上观看的同一视频。
这里有什么我想念的吗?
答案 0 :(得分:0)
我有同样的问题。但是我这样解决了,而且效果很好。迅速4
private
-> public
private func stringFromEvaluingJavaScript(jsToExecute: String) -> String{
Guard let result = self.webView.stringByEvaluingJavaScript (from jsToExecute) else{
return ""
}
return result
}
直接执行
playerView.stringFromEvaluingJavaScript(jsToExecute): "player.setPlaybackRate(1.5);")