[swift] Swift에서 비디오 재생 시간 표시하기

Swift를 사용하여 iOS 앱에서 비디오를 재생할 때, 비디오의 현재 재생 시간을 사용자에게 표시하는 것은 유용한 기능입니다.

AVPlayer로 비디오 재생

먼저 AVPlayer를 사용하여 비디오를 재생하는 방법을 알아봅시다. AVPlayer를 초기화하고 비디오 파일을 로드하는 코드는 다음과 같습니다.

import AVFoundation

let videoURL = URL(fileURLWithPath: "path_to_your_video_file.mp4")
let player = AVPlayer(url: videoURL)
let playerLayer = AVPlayerLayer(player: player)
player.play()

비디오 재생 시간 표시

비디오의 현재 재생 시간을 표시하기 위해 AVPlayer를 사용하여 현재 재생 시간을 가져와야 합니다. 이를 표시하기 위해 주기적으로 업데이트해야 합니다.

let interval = CMTime(value: 1, timescale: 2)
player.addPeriodicTimeObserver(forInterval: interval, queue: DispatchQueue.main) { (time) in
    let seconds = CMTimeGetSeconds(time)
    // 현재 재생 시간을 표시
    print("현재 재생 시간: \(seconds)")
}

위 코드는 매 0.5초 간격으로 현재 재생 시간을 확인하여 출력합니다. 이를 화면에 표시하는 것은 화면에 맞게 시각적으로 디자인하여 표시해야 합니다.

시간 포맷 변경

비디오의 현재 재생 시간을 표시할 때, 이를 일반적인 시간 형식(시:분:초)으로 변환해야 합니다. 시간을 변환하고 사용자에게 표시하기 위한 헬퍼 함수를 작성할 수 있습니다.

func formatTime(time: TimeInterval) -> String {
    let formatter = DateComponentsFormatter()
    formatter.allowedUnits = [.hour, .minute, .second]
    formatter.unitsStyle = .positional
    formatter.zeroFormattingBehavior = .pad
    return formatter.string(from: time)!
}

// 사용 예시
let currentTime: TimeInterval = 75
print(formatTime(time: currentTime)) // 출력: "01:15"

이렇게 변환된 시간은 사용자가 비디오의 현재 재생 시간을 더 쉽게 이해하고 파악할 수 있도록 도와줄 것입니다.

비디오 재생 시간을 표시하는 것은 사용자 경험을 향상시키는 데 도움이 되며, Swift의 AVPlayer를 활용하여 쉽게 구현할 수 있습니다.

참고 자료