LoginSignup
1
1

More than 3 years have passed since last update.

Swift でショートムービ(動画)を再生する

Posted at

はじめに

AVPlayer を使って動画を再生できるように実装していきます。
より詳細な情報は下記で載せました。

動画を表示するためのクラス作成

まずは動画を再生するために、AVPlayerLayerlayerClass とする 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()
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1