[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