iOS 애플리케이션을 개발하다 보면 비디오를 재생하고 사용자 경험을 향상시키기 위해 비디오 플레이어 인터페이스를 커스터마이징해야 할 때가 있습니다. Swift에서 AVFoundation 프레임워크를 사용하여 비디오를 재생하고 인터페이스를 커스터마이징하는 방법을 알아보겠습니다.
비디오 플레이어 뷰 만들기
먼저, 비디오를 재생하기 위한 플레이어 뷰를 만들어야 합니다. AVPlayerViewController
는 기본 비디오 플레이어를 제공하지만, 여기서는 인터페이스를 직접 커스터마이징하기 위해 AVPlayerLayer
를 사용할 것입니다.
import AVFoundation
import AVKit
import UIKit
class CustomVideoPlayerView: UIView {
private var player: AVPlayer?
func setupPlayer(with url: URL) {
let playerItem = AVPlayerItem(url: url)
player = AVPlayer(playerItem: playerItem)
let playerLayer = AVPlayerLayer(player: player)
playerLayer.frame = bounds
layer.addSublayer(playerLayer)
player?.play()
}
}
위 코드는 CustomVideoPlayerView
라는 사용자 정의 뷰를 만들고, setupPlayer
메서드를 사용하여 비디오를 재생하는 기능을 구현한 것입니다.
사용자 정의 컨트롤 추가하기
비디오 플레이어에 플레이어 컨트롤을 추가하여 사용자가 비디오를 조작할 수 있도록 만들 수 있습니다. 여기서는 재생/일시정지 버튼을 추가하는 예시를 살펴보겠습니다.
class CustomVideoPlayerView: UIView {
// ... (이전 코드 생략)
func addCustomControls() {
let playButton = UIButton(type: .custom)
playButton.setTitle("Play", for: .normal)
playButton.addTarget(self, action: #selector(playButtonTapped), for: .touchUpInside)
addSubview(playButton)
}
@objc func playButtonTapped() {
if player?.rate == 0 {
player?.play()
} else {
player?.pause()
}
}
}
addCustomControls
메서드를 사용하여 플레이어 뷰에 재생 버튼을 추가했습니다. 이 버튼을 누를 때마다 playButtonTapped
메서드가 호출되어 비디오의 재생/일시정지 상태를 변경합니다.
마치며
위에서는 Swift를 사용하여 비디오 플레이어 인터페이스를 커스터마이징하는 방법을 살펴보았습니다. 사용자 정의 뷰를 만들고, 컨트롤을 추가함으로써 비디오 플레이어를 완전히 커스터마이즈할 수 있습니다. 이를 통해 애플리케이션의 사용자 경험을 향상시킬 수 있습니다.
참고: Apple Developer Documentation - AVFoundation