はじめに
AVPlayer を使って動画を再生できるように実装していきます。
より詳細な情報は下記で載せました。
動画を表示するためのクラス作成
まずは動画を再生するために、AVPlayerLayer
を layerClass
とする UIView のサブクラスを
作成していきます。
class VideoPlayerView: UIView {
private var playerLayer: AVPlayerLayer? {
return layer as? AVPlayerLayer
}
// Override UIView property
override static var layerClass: AnyClass {
return AVPlayerLayer.self
}
}
VideoPlayerView
に Property を追加
基本的には動画の制御に必要な API は AVPlayer
が全て持ってます。
isPlaying
に関しては AVPlayer
に特にそれっぽい API が無かったのでプロパティを追加しま
した。
class VideoPlayerView: UIView {
private(set) var player: AVPlayer? {
get {
return playerLayer?.player
}
set {
playerLayer?.player = newValue
}
}
var isPlaying: Bool {
guard let player = player else {
return false
}
return player.rate != 0 && player.error == nil
}
private var playerLayer: AVPlayerLayer? {
return layer as? AVPlayerLayer
}
// Override UIView property
override static var layerClass: AnyClass {
return AVPlayerLayer.self
}
func setPlayer(player: AVPlayer) {
self.player = player
}
}
再生してみる
// 再生
videoPlayerView.player?.play()
// 一時停止
videoPlayerView.player?.pause()