Swift3 Воспроизведение нескольких видеофайлов с помощью AVPlayer

У меня есть небольшой код, который позволяет мне воспроизводить локальный файл, когда я нажимаю UIButton. Но я хочу воспроизвести несколько файлов на 3 разных UIButtons, потому что у меня есть 3 видеофайла, которые я хочу прикрепить к своему приложению.

Это текущий код:

import UIKit
import AVFoundation
import AVKit

class ViewController: UIViewController {

    var playerController = AVPlayerViewController()
    var player:AVPlayer?


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

        let videoString:String? = Bundle.main.path(forResource: "Video", ofType: ".mp4")

        if let url = videoString {

            let videoURL = NSURL(fileURLWithPath: url)

            self.player = AVPlayer(url: videoURL as URL)
            self.playerController.player = self.player



        }


    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    @IBAction func PlayVideo(_ sender: AnyObject) {

        self.present(self.playerController, animated: true, completion: {

            self.playerController.player?.play()

        })

    }


}

person DeDe Schurk    schedule 06.07.2017    source источник


Ответы (1)


Вы можете создать URL-адрес для другого видеофайла в функциях нажатия кнопки.

@IBAction func Button1Click(_ sender: AnyObject) {
    let videoString:String? = Bundle.main.path(forResource: "Video1", ofType: ".mp4")

    if let url = videoString {
        let videoURL = NSURL(fileURLWithPath: url)
        self.player = AVPlayer(url: videoURL as URL)
        self.playerController.player = self.player
    }

    self.present(self.playerController, animated: true, completion: {
        self.playerController.player?.play()

    })

}

@IBAction func Button2Click(_ sender: AnyObject) {
    let videoString:String? = Bundle.main.path(forResource: "Video2", ofType: ".mp4")

    if let url = videoString {
        let videoURL = NSURL(fileURLWithPath: url)
        self.player = AVPlayer(url: videoURL as URL)
        self.playerController.player = self.player
    }

    self.present(self.playerController, animated: true, completion: {
        self.playerController.player?.play()

    })

}

@IBAction func Button3Click(_ sender: AnyObject) {
    let videoString:String? = Bundle.main.path(forResource: "Video3", ofType: ".mp4")

    if let url = videoString {
        let videoURL = NSURL(fileURLWithPath: url)
        self.player = AVPlayer(url: videoURL as URL)
        self.playerController.player = self.player
    }

    self.present(self.playerController, animated: true, completion: {
        self.playerController.player?.play()

    })

}
person Fangming    schedule 06.07.2017