2014-08-27 168 views
1

我看到很多主題,總是有同樣的問題:它根本沒有顯示。MPMoviePlayerController不顯示視頻

,是因爲我有點頑固,我想

這是我的代碼:

let moviePath = NSBundle.mainBundle().pathForResource("back", ofType:"mp4"); 
println(moviePath!) 
let movieURL = NSURL.fileURLWithPath(moviePath!) 
let theMoviePlayer = MPMoviePlayerController(contentURL: movieURL!) 
self.view.addSubview(theMoviePlayer.view) 
theMoviePlayer.prepareToPlay() 
theMoviePlayer.shouldAutoplay = true 
theMoviePlayer.fullscreen = true 
theMoviePlayer.play() 

我檢查,我必須在應用程序的包資源上的電影文件。 視頻尺寸:640×360像素

那麼它可以從哪裏來?

我忘了重要的事嗎?

編輯

這個新代碼的工作,但總有一些問題:

let url = NSBundle.mainBundle().URLForResource("back", withExtension: ".mp4") 
let player = MPMoviePlayerViewController(contentURL: url) 
presentMoviePlayerViewControllerAnimated(player) 
player.moviePlayer.prepareToPlay() 
player.moviePlayer.repeatMode = MPMovieRepeatMode.One 
player.moviePlayer.shouldAutoplay = true 
player.moviePlayer.play() 

它給我看在橫向視圖的視頻,而不是全屏。

回答

1

這是我在我的一個應用程序中做到的。您可能需要調用presentMoviePlayerViewControllerAnimated()並傳入MPMoviePlayerViewController而不是執行addSubview。

let url = NSBundle.mainBundle().URLForResource("back", withExtension: ".mp4") 
let player = MPMoviePlayerViewController(contentURL: url) 
presentMoviePlayerViewControllerAnimated(player) 
player.prepareToPlay() 
player.shouldAutoplay = true 
player.fullscreen = true 
player.moviePlayer.play() 
+0

謝謝你。但它不是全屏顯示,而是處於橫向模式。你有什麼解決方案嗎? – Aymenworks 2014-08-28 00:00:37

+0

我相信那是因爲你正在設置'player.fullscreen = true'。這使默認情況下視頻以橫向模式播放。 – Shan 2014-08-28 04:47:51

+0

不,這不是問題:s – Aymenworks 2014-08-28 07:10:09

0

** **解決

我解決加數行:

player.moviePlayer.view.transform = CGAffineTransformMakeRotation(CGFloat(M_PI/2)) 

當然,做視頻的旋轉。所以如果它是一個簡單的背景動畫像雲彩或簡單的東西,那沒關係。

0

如果視頻的內容類型沒有問題,則調用以下函數。它只是工作。 :)

私人FUNC presentVideoVC(){

var url: NSURL = NSURL(string: "http://jplayer.org/video/m4v/Big_Buck_Bunny_Trailer.m4v")! 
    var moviePlayerVC: MPMoviePlayerViewController! = MPMoviePlayerViewController(contentURL: url) 
    self.presentMoviePlayerViewControllerAnimated(moviePlayerVC) 

} 
0

我的兩分錢:

在ios9的情況下使用https ..(或添加例外...不好。) 不要直接調用在viewDidLoad中,它不能正常工作,請致電異步等待一段時間,讓控制器設置:

dispatch_async(dispatch_get_main_queue()){ 
    self.playIt()   
} 


func playIt() { 
    let urlString = "https://www.ingconti.com/softysit/Spinelli_short.mp4" 
    let url: NSURL = NSURL(string: urlString)! 
    let moviePlayerVC: MPMoviePlayerViewController! = MPMoviePlayerViewController(contentURL: url) 
    moviePlayerVC.moviePlayer.shouldAutoplay = true 
    self.presentMoviePlayerViewControllerAnimated(moviePlayerVC) 
} 

注意,現在MPMoviePlayerViewController已被棄用。

相關問題