MPMoviePlayerController不显示视频

时间:2014-08-27 19:53:04

标签: ios swift 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()

它以横向视图显示视频,而不是全屏。

4 个答案:

答案 0 :(得分: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()

答案 1 :(得分:0)

**已解决**

我决定加上一行:

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

当然,它会轮播视频。所以如果它是一个简单的背景动画像云或简单的东西,它没关系。

答案 2 :(得分:0)

如果视频的内容类型没有问题,请调用以下功能。它只是有效。 :)

private 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)

}

答案 3 :(得分: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。