MPMoviePlayerController muestra solo pantalla en negro – Swift

Tengo una vista dentro de ViewController a la que quiero agregarle un controller de movimiento de jugador. Pero hasta ahora solo obtengo una pantalla negra. Estoy ejecutando esto en el simulador y usando la transmisión Apple Dev que probé en Safari y funciona.

El videoView se agrega al controller a través de un IBOutlet. Estoy usando Xcode 6 beta 7.

Todo esto está dentro de UIViewController.

Declaración de videoView 320×320 (global):

@IBOutlet var videoView: UIView! 

Declaración de MPMoviePlayerController (global):

  var videoPlayer : MPMoviePlayerController = MPMoviePlayerController() 

Adición de videoPlayer a la vista:

  videoURLWithPath = "http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8" let videoURL = NSURL(fileURLWithPath: videoURLWithPath) videoPlayer.movieSourceType = MPMovieSourceType.Streaming; videoPlayer.contentURL = videoURL videoPlayer.view.frame = videoView.bounds videoView.addSubview(videoPlayer.view) videoPlayer.controlStyle = MPMovieControlStyle.Embedded videoPlayer.prepareToPlay() videoPlayer.play() 

Storyboard:

Storyboard

Simulador:

introduzca la descripción de la imagen aquí

Actualizar:

También he intentado hacer esto. Súper simple Y sigo obteniendo el mismo resultado. El tamaño del cuadro se establece de esa manera para que pueda ver que el jugador se ha agregado.

  let streamURL = NSURL(string: "http://www.thumbafon.com/code_examples/video/segment_example/prog_index.m3u8") var streamPlayer = MPMoviePlayerController(contentURL: streamURL) streamPlayer.view.frame = CGRect(x: 10, y: 10, width: 200, height: 200) streamPlayer.controlStyle = MPMovieControlStyle.Embedded videoView.addSubview(streamPlayer.view) streamPlayer.play() 

Terminé abandonando MPMoviePlayerController y opté por usar AVFoundation en su lugar.

Ejemplo de trabajo:

Declaraciones globales:

 var player : AVPlayer? = nil var playerLayer : AVPlayerLayer? = nil var asset : AVAsset? = nil var playerItem: AVPlayerItem? = nil 

dentro de viewDidLoad:

  let videoURLWithPath = "http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8" let videoURL = NSURL(string: videoURLWithPath) asset = AVAsset.assetWithURL(videoURL) as? AVAsset playerItem = AVPlayerItem(asset: asset) player = AVPlayer(playerItem: self.playerItem) playerLayer = AVPlayerLayer(player: self.player) playerLayer!.frame = videoView.frame videoView.layer.addSublayer(self.playerLayer) player!.play() 

En lugar de usar MPMoviePlayerController , esto funciona perfectamente para mí:

 // import MediaPlayer var moviePlayer : MPMoviePlayerViewController? @IBAction func playVideo() { let path = NSBundle.mainBundle().pathForResource("ra3", ofType:"mp4") let url = NSURL.fileURLWithPath(path!) let videoURL = url moviePlayer = MPMoviePlayerViewController(contentURL: videoURL ) if let player = moviePlayer { player.view.frame = self.view.bounds self.presentViewController(moviePlayer!, animated: true, completion: nil) } else { NSLog("no player") } }