我正在使用AVPlayer在tvOS中播放非常短的视频。此刻,当我触摸遥控器时,视频的时间线显示出来,我可以快进和快退。有没有办法完全禁用它,即强制用户从头到尾看到剪辑而不能前进/后退/暂停/...?
答案 0 :(得分:6)
yourPlayerController.requiresLinearPlayback = true
可以解决问题。
答案 1 :(得分:1)
使用
self.playerController.setValue(true, forKey: "requiresLinearPlayback")
答案 2 :(得分:0)
您正在使用AVPlayerViewController,如果您使用另一个ViewController并初始化AVPlayer并将其添加为子视图,您将无法获得时间搜索。
如果您想禁用播放/暂停,可以覆盖pressedEnded中的播放/暂停按钮。
答案 3 :(得分:0)
找到问题的简单解决方案:从AVPlayerViewController,可以将属性showsPlaybackControls设置为false。例如,在构造函数中:
class PlayerViewController: AVPlayerViewController, AVPlayerViewControllerDelegate {
override func viewDidLoad() {
super.viewDidLoad()
self.showsPlaybackControls = false
}
}
然后控件不再出现,前进/后退/播放/暂停也不再起作用。
答案 4 :(得分:0)
在tvOS上,您可以直接致电playerViewController.requiresLinearPlaybackSelector = true
但如果您通过Google找到此答案并寻找iOS:
还有相同的api(目前在iOS 11中是私有的),您可以将requiresLinearPlayback
设置为true或false。如果您尝试在iOS 10上调用它(如果更改了私有API,可能会在未来的iOS版本中),您将崩溃,所以不要像其他人建议的那样盲目地调用setValue:forKey:
。
而是使用选择器确保它存在然后安全地调用它:
let requires = true // or false
let requiresLinearPlaybackSelector = #selector(setRequiresLinearPlayback(_:))
if playerViewController.responds(to: requiresLinearPlaybackSelector) {
playerViewController.perform(requiresLinearPlaybackSelector, with: requires ? 1 : nil)
}