簡體   English   中英

在AVPlayer中禁用時間搜索

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM