tvOS隐藏时间栏,同时不丢失音频菜单?

时间:2016-05-03 19:40:08

标签: swift tvos avplayerviewcontroller

在我的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!)
    }

}

1 个答案:

答案 0 :(得分:0)

我现在的解决方案是扩展AVPlayer并覆盖currentTime函数:

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

虽然这不会隐藏时间栏,但它会确保时间值保持为零,同时不会阻止访问播放设置。