[swift] 비디오 재생 시 프로그레스 바 추가하기 (Swift)

비디오 앱을 개발하고 있을 때 사용자에게 동영상의 재생 상태를 시각적으로 보여주는 것이 중요합니다. 이를 위해서는 프로그레스 바를 추가하여 사용자에게 현재 재생 위치를 시각적으로 표시할 수 있습니다.

AVPlayerLayer를 이용하여 프로그레스 바 추가하기

AVPlayerLayer를 사용하여 비디오 뷰어에 프로그레스 바를 추가할 수 있습니다. 아래는 AVPlayerLayer를 이용하여 프로그레스 바를 추가하는 간단한 예제입니다.

import AVFoundation
import UIKit

class VideoPlayerViewController: UIViewController {

    var player: AVPlayer!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        // 비디오 파일 경로
        let videoURL = URL(fileURLWithPath: "video.mp4")
        let playerItem = AVPlayerItem(url: videoURL)
        player = AVPlayer(playerItem: playerItem)
        
        let playerLayer = AVPlayerLayer(player: player)
        playerLayer.frame = view.bounds
        view.layer.addSublayer(playerLayer)
        
        // 프로그레스 바 추가
        let progressBar = UIProgressView(progressViewStyle: .default)
        progressBar.frame = CGRect(x: 0, y: view.frame.size.height - 5, width: view.frame.size.width, height: 5)
        progressBar.progressTintColor = UIColor.red
        view.addSubview(progressBar)
        
        // 비디오 재생 시간에 따라 프로그레스 바 업데이트
        player.addPeriodicTimeObserver(forInterval: CMTimeMake(value: 1, timescale: 1), queue: DispatchQueue.main) { [weak self] time in
            let progress = Float(CMTimeGetSeconds(time) / CMTimeGetSeconds(playerItem.duration))
            progressBar.setProgress(progress, animated: true)
        }
        
        // 비디오 재생 시작
        player.play()
    }
}

위의 예제에서는 AVPlayerLayer를 사용하여 비디오 뷰어에 비디오를 추가하고, UIProgressView를 사용하여 프로그레스 바를 추가합니다. 또한, 비디오 재생 시간에 따라 프로그레스 바가 업데이트되도록 설정합니다.

AVPlayerLayer 및 AVPlayer를 사용하여 프로그레스 바를 추가하는 방법을 사용하여 비디오 재생 상태를 사용자에게 시각적으로 보여줄 수 있습니다.

결론

AVPlayerLayer를 사용하여 비디오 재생 시 프로그레스 바를 추가하는 방법을 살펴보았습니다. 프로그레스 바를 통해 사용자에게 현재 재생 위치를 시각적으로 보여주므로, 비디오 앱의 사용자 경험 향상에 도움이 될 것입니다.

이러한 기능을 활용하여 비디오 앱을 개발할 때, 사용자가 재생 상태를 파악할 수 있도록 프로그레스 바를 추가하는 것을 고려해보세요.