AVPlayer可以听到音频但没有Mp4文件TVO的视频

时间:2015-10-28 07:54:59

标签: ios swift video avplayer tvos

我正在尝试使用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()
    }


}

1 个答案:

答案 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)中运行良好。