[英]Disable time seek in AVPlayer
我正在使用AVPlayer在tvOS中播放非常短的視頻。 此刻,當我觸摸遙控器時,視頻的時間線顯示出來,我可以快進和快退。 有沒有辦法完全禁用它,即強制用戶從頭到尾看到剪輯而不能前進/后退/暫停/ ...?
yourPlayerController.requiresLinearPlayback = true
就可以了。
采用
self.playerController.setValue(true, forKey: "requiresLinearPlayback")
您正在使用AVPlayerViewController,如果您使用另一個ViewController並初始化AVPlayer並將其添加為子視圖,您將無法獲得時間搜索。
如果要禁用播放/暫停,可以覆蓋pressEnded中的播放/暫停按鈕。
找到了一個簡單的問題解決方案:從AVPlayerViewController,可以將屬性showsPlaybackControls設置為false。 例如在構造函數中:
class PlayerViewController: AVPlayerViewController, AVPlayerViewControllerDelegate {
override func viewDidLoad() {
super.viewDidLoad()
self.showsPlaybackControls = false
}
}
然后控件不再出現,前進/后退/播放/暫停也不再起作用。
在tvOS上你可以直接調用playerViewController.requiresLinearPlaybackSelector = true
但是如果你通過谷歌找到這個答案並尋找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)
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.