Video를 삽입하기 위해서는 새로운 VideoSplashViewController를 생성하여 메인 ViewController에서 사용할 수 있도록 해야한다.
MusicKit의 일부인 Media Player 프레임 워크를 사용하여 앱에서 사용자 미디어 재생을 제어한다.
앱에 음악이 포함 된 경우이 해당 콘텐츠를 직접 재생하거나 시스템 음악 앱에 재생을 요청할 수 있다.
AVKit는 video와 상호작용 하기위해 제공된 모든 필요한 UI와 AVFoundation의 상위에 위치한다.
AVKit을 사용하면 플랫폼의 기본 재생 환경과 일치하는 어플용 플레이어 인터페이스를 쉽게 제공할 수 있다.
먼저, url 속성을 가지는 비디오 객체를 생성한다.
self.moviePlayer.player = AVPlayer(url: url)
AVPlayer는 비디오 플레이의 중심으로, 비디오 시작과 정지, 재생속도 변경, 볼륨 조정 등의 기능을 제공한다.
private let moviePlayer = AVPlayerViewController()
self.moviePlayer.player?.play()
AVPlayerViewController는 player 객체가 필요한 뷰 컨드롤러이다.
비디오를 시작하기 위해 play() 호출이 필요하다.
open var sound: Bool = true {
didSet {
if sound {
moviePlayerSoundLevel = 1.0
} else {
moviePlayerSoundLevel = 0.0
}
}
}
open var alwaysRepeat: Bool = true {
didSet {
if alwaysRepeat {
NotificationCenter.default.addObserver(self, selector: #selector(VideoSplashViewController.playerItemDidReachEnd), name: NSNotification.Name.AVPlayerItemDidPlayToEndTime, object: moviePlayer.player?.currentItem)
}
}
}
open var fillMode: ScalingMode = .resizeAspectFill {
didSet {
switch fillMode {
case .resize:
moviePlayer.videoGravity = convertToAVLayerVideoGravity(AVLayerVideoGravity.resize.rawValue)
case .resizeAspect:
moviePlayer.videoGravity = convertToAVLayerVideoGravity(AVLayerVideoGravity.resizeAspect.rawValue)
case .resizeAspectFill:
moviePlayer.videoGravity = convertToAVLayerVideoGravity(AVLayerVideoGravity.resizeAspectFill.rawValue)
}
}
}
open var alpha: CGFloat = CGFloat() {
didSet {
moviePlayer.view.alpha = alpha
}
}