2017-12-19 5 views
0

Ich habe eine App, wo, wenn der Benutzer eine Schaltfläche auswählt, zeigt es ein Video. Der Code scheint zu funktionieren, wenn der Videoplayer geladen wird. Ich habe auch die NSAppTransportSecurity-Einstellungen geändert, um NSAllowsArbitraryLoads einzuschließen. Ich habe mehrere Videos fest codiert, um festzustellen, ob ein Problem mit meinem bestimmten Video vorliegt, aber keines funktioniert. Hier ist der Code, jede Hilfe wird sehr geschätzt.Video nicht in App

@IBAction func playVideo(_ sender: Any) { 
    func prepare(for segue: UIStoryboardSegue, sender: Any?) { 

     let destination = segue.destination as! AVPlayerViewController 
     let url = URL(string: 
      "http://www.ebookfrenzy.com/ios_book/movie/movie.mov") 

     if let movieURL = url { 
      destination.player = AVPlayer(url: movieURL) 
     } 
     let player = AVPlayer(url: url!) 
     let playerController = AVPlayerViewController() 

     playerController.player = player 
     self.addChildViewController(playerController) 
     self.view.addSubview(playerController.view) 
     playerController.view.frame = self.view.frame 

     player.play() 
    } 
+0

Warum ist 'vorbereiten (für segue:)' verschachtelt in Ihrem 'IBAction'? Sie müssen einen Übergang von der "IBAction" durchführen und dann Ihre 'prepare (for segue:)' -Funktion in den UIViewController-Unterklassenbereich verschieben. – JAL

+0

Danke JAL, du hast Recht, es wird nicht benötigt, da der Player immer noch nicht da ist. Leider spielt das Video selbst immer noch nicht so oder so. – techgirl

Antwort

2

Im Grunde ist dies gut funktioniert,

func playVideo() { 

    let url = URL(string: "http://www.ebookfrenzy.com/ios_book/movie/movie.mov") 
    let player = AVPlayer(url: url!) 
    let playerController = AVPlayerViewController() 

    playerController.player = player 
    self.addChildViewController(playerController) 
    self.view.addSubview(playerController.view) 
    playerController.view.frame = self.view.frame 

    player.play() 

}