[swift] Swift에서 비디오 재생 시 전체 화면 잠금/해제하기
iOS 앱을 개발하다 보면, 비디오를 재생하는 화면을 만들어야 하는 경우가 있습니다. 사용자가 비디오를 시청하는 동안 전체 화면 잠금/해제 기능을 제공하는 것은 유용한 기능 중 하나입니다. 이 기능을 Swift에서 구현하는 방법을 알아보겠습니다.
AVPlayerViewController 사용하기
AVPlayerViewController는 iOS에서 비디오 재생을 위한 기본 제공 뷰 컨트롤러입니다. 이를 사용하여 비디오를 재생하고 전체 화면 기능을 쉽게 구현할 수 있습니다.
다음은 AVPlayerViewController를 사용하여 비디오를 재생하는 예제 코드입니다.
import AVKit
import AVFoundation
class VideoPlayerViewController: AVPlayerViewController {
override func viewDidLoad() {
super.viewDidLoad()
if let videoURL = URL(string: "your_video_url_here") {
let player = AVPlayer(url: videoURL)
self.player = player
player.play()
}
}
}
전체 화면 잠금/해제 구현하기
전체 화면 잠금/해제 기능은 AVPlayerViewController의 속성을 사용하여 구현할 수 있습니다. 아래의 예제 코드는 사용자가 전체 화면으로 비디오를 시청하는 동안에만 회전을 허용하도록 하는 방법을 보여줍니다.
extension VideoPlayerViewController {
override var shouldAutorotate: Bool {
return isFullScreen
}
override var supportedInterfaceOrientations: UIInterfaceOrientationMask {
return isFullScreen ? .allButUpsideDown : .portrait
}
override var prefersStatusBarHidden: Bool {
return isFullScreen
}
override var prefersHomeIndicatorAutoHidden: Bool {
return isFullScreen
}
private var isFullScreen: Bool {
return presentingViewController != nil
}
}
결론
Swift를 사용하여 AVPlayerViewController를 활용하면 비디오 재생 화면을 빠르게 구현할 수 있습니다. 또한, 속성을 이용하여 전체 화면 잠금/해제 기능을 손쉽게 구현할 수 있습니다.
참고 자료: Apple Developer Documentation - AVKit