2014-08-27 130 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已被弃用。