在我的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!)
}
}
答案 0 :(得分:0)
我现在的解决方案是扩展AVPlayer并覆盖currentTime函数:
class CustomAVPlayer : AVPlayer {
override func currentTime() -> CMTime {
return CMTime(value: 0, timescale: 60)
}
}
虽然这不会隐藏时间栏,但它会确保时间值保持为零,同时不会阻止访问播放设置。