2015-10-28 94 views
1

我想播放一個遠程mp4文件,這是在網絡上使用TVOS上的AVPlayer。當我嘗試播放視頻時,我可以聽到音頻,但沒有視頻,整個屏幕都是空白的。我已經閱讀了許多文章,說我應該關閉ATS(我這樣做了,但是我的網址是HTTPS),我也在viewDidLayoutSubviews中設置了框架,但仍然無法使其工作。這裏是我的代碼,如果有人能幫助我解決這個問題,那麼這將是一個很大的幫助,因爲我從昨天開始就在這裏和那裏撓頭。AVPlayer聽到音頻但沒有視頻的MP4文件TVOs

我並沒有針對一些隱私問題撰寫確切的網址。

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

首先,您需要進行以下更改。 NSURL.init(字符串: 「有些亞馬遜Url.mp4」) - > NSURL(字符串: 「有些亞馬遜Url.mp4」) AVPlayer.init(網址:movieUrl) - > AVPlayer(網址:movieUrl) AVPlayerLayer .init(layer:moviePlayer!) - > AVPlayerLayer(layer:moviePlayer!) –

+0

這些會對實際結果產生什麼影響? – Madu

+0

@Madu你有任何解決方案嗎?我也面臨同樣的問題,它只播放TVos上的空白屏幕音頻。 –

回答

0

該URL以某種方式表明HTTP(S)流式傳輸,對不對? 那麼,我也嘗試通過其Web接口從機頂盒播放像DVB接收機一樣的視頻流。它沒有工作(至少當我嘗試使用tvOS 9.0時)。根據Apple文檔,視頻流必須符合他們描述的HTTP流媒體協議。它要求將HTTP流分成幾個小段的視頻片段,這些視頻片段只有幾秒鐘的長度。看到https://developer.apple.com/library/tvos/referencelibrary/GettingStarted/AboutHTTPLiveStreaming/about/about.html

最後我放棄了,並轉而使用videolan.org的VLCKit。來回之後,這在我的應用程序(vuplusTV)中運行良好。