tvOS скрывает временную шкалу, не теряя при этом аудиоменю?

В моем приложении tvOS я воспроизводю поток только аудио без определенной длины. Что я нахожу, так это то, что полоса времени в нижней части экрана отображает индикаторы времени (слева и справа), которые просто мерцают между 0:00 и временем, в течение которого воспроизводится поток.

Я рассматриваю два варианта: либо сказать AVPlayerViewController не отображать время, либо каким-то образом скрыть шкалу времени, но не потерять аудиоменю в верхней части экрана. Может кто подскажет подходящее решение

Я должен отметить, что тестировал это только в эмуляторе, который использует tvOS 9.2.

Код, который у меня есть на данный момент:

class StreamPlayerViewController: AVPlayerViewController 

    var playerItem:AVPlayerItem?
    var playerLayer:AVPlayerLayer?
    override func viewDidLoad() {
        let videoURL = NSURL(string: "http://example.org/aac.m3u")
        playerItem = AVPlayerItem(URL: videoURL!)
        self.player=AVPlayer(playerItem: playerItem!)

        self.playerLayer=AVPlayerLayer(player: player)

        self.player?.play()
    }

    // hides controller, but also lose access to audio menu
    override func viewDidAppear(animated: Bool) {
        self.playerLayer?.frame=self.view.frame
        self.playerLayer?.backgroundColor=UIColor.blackColor().CGColor
        self.view.layer.addSublayer(self.playerLayer!)
    }

}

person Andre M    schedule 03.05.2016    source источник


Ответы (1)


Решение, которое у меня есть на данный момент, состоит в том, чтобы расширить AVPlayer и переопределить функцию currentTime:

class CustomAVPlayer : AVPlayer {
    override func currentTime() -> CMTime {
        return CMTime(value: 0, timescale: 60)
    }
}

Хотя это не скрывает полосу времени, оно гарантирует, что значения времени остаются на нуле, не закрывая при этом доступ к настройкам воспроизведения.

person Andre M    schedule 03.05.2016