[swift] Swift에서 비디오 재생 시 비디오 소스 동적 변경하기

Swift를 사용하여 iOS 앱을 개발하고 있는 경우, 비디오를 재생하는 기능을 구현해야 할 때가 있습니다. 때로는 사용자 인터페이스나 다양한 조건에 따라 비디오 소스를 동적으로 변경해야 할 수도 있습니다. 이 글에서는 Swift를 사용하여 비디오 소스를 동적으로 변경하는 방법에 대해 알아보겠습니다.

AVPlayer를 사용하여 비디오 재생하기

AVPlayer는 Swift 및 Objective-C에서 비디오 및 오디오 미디어를 다루는 데 사용되는 객체입니다. AVPlayer를 사용하여 비디오를 재생하는 방법은 다음과 같습니다.

먼저 AVPlayer를 초기화하고, AVPlayerLayer를 생성하여 비디오를 보여줄 뷰(layer)에 추가합니다. 그런 다음 AVPlayerItem을 생성하고 AVPlayer에 할당하여 비디오를 로딩하고 재생합니다.

import AVKit
import AVFoundation

...

// 비디오 파일 경로
let videoURL = URL(string: "https://www.example.com/video1.mp4")

// AVPlayer 초기화
let player = AVPlayer(url: videoURL!)

// AVPlayerLayer 생성
let playerLayer = AVPlayerLayer(player: player)
playerLayer.frame = CGRect(x: 0, y: 0, width: self.view.frame.width, height: self.view.frame.height)

// 비디오를 보여줄 뷰(layer)에 추가
self.view.layer.addSublayer(playerLayer)

// 비디오 재생
player.play()

비디오 소스 동적 변경하기

비디오 소스를 동적으로 변경하기 위해선 새로운 AVPlayer를 생성하고 AVPlayerLayer에 할당하는 방식으로 접근할 수 있습니다.

// 새로운 비디오 파일 경로
let newVideoURL = URL(string: "https://www.example.com/video2.mp4")

// 새로운 AVPlayer 초기화
let newPlayer = AVPlayer(url: newVideoURL!)

// 이전에 추가한 AVPlayerLayer 제거
playerLayer.removeFromSuperlayer()

// 새로운 AVPlayerLayer 생성
let newPlayerLayer = AVPlayerLayer(player: newPlayer)
newPlayerLayer.frame = CGRect(x: 0, y: 0, width: self.view.frame.width, height: self.view.frame.height)

// 새로운 비디오를 보여줄 뷰(layer)에 추가
self.view.layer.addSublayer(newPlayerLayer)

// 새로운 비디오 재생
newPlayer.play()

위 코드에서는 비디오를 새로 로드하고, 이전에 추가한 AVPlayerLayer를 제거한 후 새로운 AVPlayerLayer를 생성하여 새로운 비디오를 보여주고 있습니다.

이제 Swift를 사용하여 비디오 소스를 동적으로 변경하는 방법에 대해 알아보았습니다. 이를 통해 사용자 인터페이스나 다양한 조건에 따라 적절한 비디오를 보여주는 기능을 구현할 수 있을 것입니다.

더 자세한 내용은 Apple 공식 문서를 참고하시기 바랍니다.