[swift] Swift에서 비디오 재생 시 터치 제스처 추가하기
Swift를 사용하여 iOS 애플리케이션을 개발하는 경우, 비디오 재생 화면에 사용자 인터랙션을 추가하고 싶을 수 있습니다. 이를 위해 터치 이벤트를 감지하여 특정 기능을 수행하는 기능을 구현할 수 있습니다.
비디오 플레이어 생성과 제스처 추가
먼저, AVKit 프레임워크를 가져와 비디오 플레이어를 생성합니다.
import AVKit
import AVFoundation
import UIKit
class VideoPlayerViewController: UIViewController {
var player = AVPlayer()
var playerViewController = AVPlayerViewController()
override func viewDidLoad() {
super.viewDidLoad()
guard let videoURL = Bundle.main.url(forResource: "sample", withExtension: "mp4") else {
return
}
player = AVPlayer(url: videoURL)
playerViewController.player = player
addChild(playerViewController)
view.addSubview(playerViewController.view)
playerViewController.view.frame = view.frame
playerViewController.showsPlaybackControls = false // 비디오 컨트롤러 숨기기
player.play()
}
}
위 코드는 AVKit 및 AVFoundation 프레임워크를 사용하여 VideoPlayerViewController를 만들고, 비디오를 재생합니다.
터치 제스처 추가
이제, 비디오 플레이어 화면에 터치 제스처를 추가하여 플레이어 컨트롤을 제어하는 동작을 구현할 수 있습니다.
override func viewDidLoad() {
super.viewDidLoad()
// ... (이전의 코드는 동일)
let tapGesture = UITapGestureRecognizer(target: self, action: #selector(handleTapGesture))
playerViewController.view.addGestureRecognizer(tapGesture)
}
@objc func handleTapGesture() {
if player.timeControlStatus == .playing {
player.pause()
} else {
player.play()
}
}
위의 코드에서 handleTapGesture
메서드는 사용자의 탭 제스처를 감지하고, 비디오가 재생 중이면 일시 정지하고, 일시 정지 중이면 재생하는 기능을 구현합니다.
이제, Swift를 사용하여 비디오 플레이어에 터치 제스처를 추가하는 방법을 알아보았습니다.