2016-06-24 19 views
1

ich habeMPMoviePlayerViewController spielt nicht .mp4 Video in Swift

import MediaPlayer 

erklärt
var moviePlayer: MPMoviePlayerViewController = MPMoviePlayerViewController() 

und Wirkung dieser Code Play-Taste wird

let url:NSURL = NSURL(string: String(format: "%@",self.videoListArray[indexPath!.row].url!))! 
    self.moviePlayer = MPMoviePlayerViewController(contentURL: url) 
    self.moviePlayer.moviePlayer.fullscreen = true 
    self.moviePlayer.moviePlayer.repeatMode = .None 
    self.moviePlayer.moviePlayer.movieSourceType = MPMovieSourceType.Streaming 
    self.presentMoviePlayerViewControllerAnimated(self.moviePlayer) 

aber den Film-Player genannt kommt zeigt schwarzen Bildschirm und Laden nach einer Sekunde kommt wieder auf den ViewController wieder.

+0

haben Sie versuchen, NSURL wie 'lassen URL erstellen = NSURL.fileURLWithPath' –

+0

können Sie versuchen, moviePlayer.prepareToPlay() vor dem Spiel Verfahren. – ashForIos

+0

Danke, aber ich habe versucht 'moviePlayer.prepareToPlay()' aber kein Erfolg –

Antwort

0

MPMoviePlayerViewController ist in iOS 9.0 veraltet, verwenden Sie besser AVPlayerViewController. Um Ihre lokalen Videos abzuspielen, müssen Sie nur eine neue viewController als AVPlayerViewController erstellen und die player verwenden.

import AVKit 
import AVFoundation 

class MyViewController: AVPlayerViewController { 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     if let filePath = NSBundle.mainBundle().pathForResource("Sample", ofType: "mp4") { 
      let avPlayerLayer = AVPlayerLayer(player: player) 
      avPlayerLayer.frame = self.view.frame 
      view.layer .addSublayer(avPlayerLayer) 
      let steamingURL = NSURL(fileURLWithPath: filePath)//note here, you need to use fileURLWithPath instead of string: for local files 
      //let steamingURL = NSURL(string: "http://www.")//this is for web urls 
      player = AVPlayer(URL: steamingURL) 
      player!.play() 
     } 
    } 
} 
Verwandte Themen