视频无法使用 swift 代码

Video not working on with 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)
                }}}}

在 playLocalVideo 中,moviePlayer: AVPlayerViewController? 没有被初始化,它将是 nil,所以按下按钮时没有任何反应。

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

试试下面的代码

 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")
        }
    }


}

并确保在将视频添加到目标时,它不应该是下图这样的图像

应该像下面这样