[swift] Swift에서 비디오 재생 이벤트 처리하기

Swift에서 비디오를 재생하는 앱을 개발할 때 비디오의 재생 이벤트를 처리하는 것은 중요한 부분입니다. 비디오의 재생, 일시정지, 종료 등의 이벤트를 처리하여 사용자에게 편리한 경험을 제공할 수 있습니다. 이번 포스트에서는 Swift를 사용하여 비디오 재생 이벤트를 처리하는 방법에 대해 알아보겠습니다.

비디오 재생을 위한 AVPlayer 사용하기

Swift에서 비디오를 재생하기 위해서는 AVPlayer를 사용합니다. AVPlayer는 비디오 및 오디오 미디어 컨텐츠를 재생하기 위한 객체입니다. 비디오 파일을 AVPlayer에 할당한 후, 재생, 일시정지, 종료 등의 이벤트를 처리할 수 있습니다.

import AVKit
import AVFoundation

let videoURL = URL(string: "your_video_url_here")
let player = AVPlayer(url: videoURL)
let playerViewController = AVPlayerViewController()
playerViewController.player = player
self.present(playerViewController, animated: true) {
    player.play()
}

위의 코드는 AVPlayer를 사용하여 비디오를 재생하는 예시입니다. AVPlayerViewController를 사용하여 비디오 플레이어를 화면에 표시하고, play() 메서드를 사용하여 비디오를 재생합니다.

비디오 재생 이벤트 처리하기

AVPlayer를 사용하여 비디오를 로드하고 재생할 때, 다양한 이벤트들을 처리할 수 있습니다. 예를 들어, 비디오의 재생이 시작되었을 때, 일시정지되었을 때, 또는 재생이 종료되었을 때 특정 작업을 수행하고 싶을 수 있습니다. 이러한 이벤트를 처리하기 위해서는 addPeriodicTimeObserver(forInterval:queue:using:) 메서드를 사용할 수 있습니다.

let interval = CMTime(seconds: 1, preferredTimescale: CMTimeScale(NSEC_PER_SEC))
player.addPeriodicTimeObserver(forInterval: interval, queue: DispatchQueue.main) { [weak self] time in
    // 비디오의 재생 시간을 가져와서 처리하는 로직을 작성
    let currentTime = CMTimeGetSeconds(time)
    // 예) 현재 재생 시간을 화면에 표시
    self?.updateCurrentTimeLabel(currentTime)
}

위의 코드는 addPeriodicTimeObserver를 사용하여 1초 간격으로 현재 재생 시간을 가져와 화면에 표시하는 예시입니다. 비디오의 재생 시간을 가져와 특정 작업을 처리하는 로직을 작성할 수 있습니다.

Swift에서 비디오 재생 이벤트를 처리하는 방법에 대해 간략히 알아보았습니다. AVPlayer를 사용하여 비디오를 재생하고, 재생 이벤트를 처리하는 방법을 참고할 수 있을 것입니다.

참고 자료

감사합니다.