我正在尝试使用TVOS上的AVPlayer播放远程mp4文件。当我尝试播放视频时,我可以听到音频,但没有视频,整个屏幕都是空白的。我已经阅读了很多文章,说我应该关闭ATS(我做了。但我的网址是HTTPS),我也在viewDidLayoutSubviews
设置框架,但仍然无法使其工作。这是我的代码,如果有人可以帮我解决这个问题,那么这将是一个很大的帮助,因为我从昨天开始在这里和那里摸不着头脑。
我没有为某些隐私问题撰写确切的网址。
import Foundation
import UIKit
import AVKit
class PlayViewController : UIViewController {
var moviePlayer : AVPlayer?
override func viewDidLoad() {
super.viewDidLoad()
print("In PlayViewController View Did Load")
let movieUrl = NSURL.init(string: "Some Amazon Url.mp4")!
moviePlayer = AVPlayer.init(URL: movieUrl)
}
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
let avPlayerLayer = AVPlayerLayer.init(layer: moviePlayer!)
avPlayerLayer.frame = CGRectMake(0.0, 0.0, 1024.0, 768.0)
self.view.layer.addSublayer(avPlayerLayer)
moviePlayer?.play()
}
}
答案 0 :(得分:0)
URL以某种方式指示HTTP(S)流,对吧? 好吧,我也尝试通过其Web界面从机顶盒(如DVB接收器)播放视频流时获得了我的经验。它不起作用(至少当我尝试使用tvOS 9.0时)。根据Apple文档,视频流必须符合他们描述的HTTP Streaming协议。它要求HTTP流被分成几个长度为几秒的小块视频片段。见https://developer.apple.com/library/tvos/referencelibrary/GettingStarted/AboutHTTPLiveStreaming/about/about.html
最后我放弃了并转而使用来自videolan.org的VLCKit。经过一番来回,这在我的应用程序(vuplusTV)中运行良好。