2016-10-28 1 views
0

All diese Code-Funktionen ist eine einzige Schaltfläche auf einem View-Controller. Die Schaltfläche sollte das Video abspielen. Im Moment gibt es keine Fehlermeldung im Code. Alles was passiert, ist, dass die Taste gedrückt wird und nichts passiert. Es gibt keine Fehlermeldung. Alles, was ich habe, ist eine View-Controller-Seite. Der Code ist unten aufgeführt.Video funktioniert nicht mit Swift-Code

import UIKit 
import AVKit 
import AVFoundation 

class ViewController: UIViewController { 


var moviePlayer: AVPlayerViewController? 

override func viewDidLoad() { 
    super.viewDidLoad() 
} 

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
} 


@IBAction func playVideo(_ sender: UIButton) { 
    playLocalVideo() 
} 
func playLocalVideo(){ 

      if moviePlayer != nil { 
       do { 
        let filePath = Bundle.main.path(forResource: "t", ofType: "mp4") 

        let videoURL = NSURL(fileURLWithPath: filePath!) 


        let player = AVPlayer(url: videoURL as URL) 
        let playViewController = AVPlayerViewController() 

        playViewController.player = player 
        self.present(playViewController, animated: true) {() -> Void in playViewController.player!.play() 

        } 

       } catch { 
        print(error) 
       }}}} 
+0

Haben Sie das Video überprüft, das zum Ziel hinzugefügt wurde? – Vinodh

+0

Dein 'moviePlayer' ist null und geht niemals nach' if moviePlayer! = Nil'.So instantiiere ihn zuerst –

Antwort

0

Versuchen Sie den Code unten

import UIKit 
import AVKit 
import AVFoundation 


class ViewController: UIViewController { 

    let moviePlayer = AVPlayerViewController() 


    override func viewDidLoad() { 
     super.viewDidLoad() 
     // Do any additional setup after loading the view, typically from a nib. 
     playLocalVideo() 
    } 




    func playLocalVideo(){ 

     if let filePath = Bundle.main.path(forResource: "t", ofType: "mp4"){ 
      let videoURL = NSURL(fileURLWithPath: filePath) 


      let player = AVPlayer(url: videoURL as URL) 


      moviePlayer.player = player 
      self.present(moviePlayer, animated: true) { 
       self.moviePlayer.player!.play() 
      } 
     } 

     else{ 
      print("Oops, something wrong when playing video.mp4") 
     } 
    } 


} 

Und sicher, während das Hinzufügen Video zu zielen, ist es nicht das Bild wie unter einem

sein sollte

enter image description here

und es sollte wie sein die folgende

enter image description here

0

In playLocalVideo, moviePlayer: AVPlayerViewController? wird nicht initialisiert wird, wird es nil sein, so passiert nichts, wenn die Taste gedrückt wird.

class ViewController: UIViewController { 
    let moviePlayer = AVPlayerViewController() 

    ... 
    ... 

    func playLocalVideo(){ 
      if let filePath = Bundle.main.path(forResource: "t", ofType: "mp4") { 
      let url = URL(fileURLWithPath: filePath) 
      let player = AVPlayer(url: url) 
      moviePlayer.player = player 
      present(moviePlayer, animated: true, completion: nil) 
     } 
    } 
} 
Verwandte Themen