티스토리 뷰

Mobile/ios

[ios] ios 13: 비디오 재생

춘햄 2022. 12. 22. 13:52

이번엔 아이폰 앱에서 비디오를 재생하는 방법을 알아보자.

 

iOS에서 제공하는 AVPlayerViewController를 사용하면 앱 내부에 저장되어 있는 비디오 파일 뿐만 아니라 외부에 링크된 비디오 파일도 간단하게 재생할 수 있다.

 

간단한 예제이니, 바로 들어가보자.


우선, 아래와 같이 스토리보드를 구성하는데 위에서부터

 

레이블 

버튼

레이블

레이블

버튼

 

으로 구성해준다.

 

그리고 버튼에 이미지를 삽입할 때는 반드시 아래 설정을 따라줘야 한다. 

특히, Type 이 System일 때는 이미지가 표출되는 것이 아닌 Tint 배경색이 표시되니 주의하자.

 

이제 재생할 비디오 하나를 프로젝트 내부에 추가한다.

 

보통은 자동으로 삽입되지만, 반드시 프로젝트 클릭 > Target > Build Phases > Copy Bundle Resources 에 해당 리소스가 추가되었는 지 확인하고, 그렇지 않다면 수동으로 추가해주어야 단말이 해당 리소스를 읽을 수 있다.

 


코드는 사실 더 별 거 없다.


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) {
        // 내부 파일 mp4
        let filePath:String? = Bundle.main.path(forResource: "FastTyping", ofType: "mp4")
        let url = NSURL(fileURLWithPath: filePath!)

        playVideo(url: url)
    }
    
    @IBAction func btnPlayerExternalMovie(_ sender: UIButton) {
        // 외부 파일 mp4
        let url = NSURL(string: "https://dl.dropboxusercontent.com/s/e38auz050w2mvud/Fireworks.mp4")!

        playVideo(url: url)
    }
    
    private func playVideo(url: NSURL)  {
        let playerController = AVPlayerViewController()
        
        let player = AVPlayer(url: url as URL)
        playerController.player = player
        
        self.present(playerController, animated: true) {
            player.play()
        }
    }
}

AVPlayer 객체에 해당 URL 객체를 삽입하고 play() 해주는 간단한 코드이다.


 

 

 

끝!

Comments