AVPlayerViewController를 활용한 간단한 비디오 플레이어 예제를 만들어 보았다.
mp4파일을 인식하지 못 하는 버그가 발생하여 프로잭트의 리소스에서 추가하였다.
보안 정책상 외부 링크는 실행이 불가능하다. 이를 허용하기 위해 외부 링크를 실행을 허용하는 키를 추가하였다.
import UIKit
import AVKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
@IBAction func btnPlayInternalMovie(_ sender: UIButton) {
let filePath:String? = Bundle.main.path(forResource: "gizmo", ofType: "mp4") // 비디오의 내부 파일 경로 저장
let url = NSURL(fileURLWithPath: filePath!) //앱 내부의 파일명 형식을 NSURL로 변경
playVideo(url: url)
}
@IBAction func btnPlayExternalMovie(_ sender: UIButton) {
let url = NSURL(string: "http://video.mrporter.com/videos/productPage/173037_detail.mp4")! //외부 링크 경로 저장
playVideo(url: url)
}
private func playVideo(url: NSURL){
let playerController = AVPlayerViewController() // 인스턴스 생성
let player = AVPlayer(url: url as URL) // URL로 초기화된 인스턴스 생성
playerController.player = player // 인스턴스 할당
//비디오 실행
self.present(playerController, animated: true) {
player.play()
}
}
}