mozyのかきおき

mozyの読書感想文や思考置き場

Swift で動画再生機能を最速で作る【約5分】

経緯

最速で実装チャレンジとしてやったことを書いていく。

目次

まず、先に手順を書いておく。

  1. Xcodeでプロジェクトを作成する
  2. mp4の動画をプロジェクトにコピーする
  3. storyboardで画面レイアウトを作る
  4. storyboardとViewControllerをつなぐ
  5. コードを書いていく
  6. 完成

やっていく

1. Xcodeでプロジェクトを作成する

言語はSwiftを選ぶのを忘れずに。

f:id:mozy_ok:20190309231339p:plain
今回はSingle View Appを選択

2. mp4の動画をプロジェクトにコピーする

iPhone でとったMOVなどは、ffmpegなどを使って変換してから追加すると良いかも。こんな感じに
ffmpeg -i 画面収録\ 2019-03-08\ 20.22.04.mov -pix_fmt yuv420p video.mp4

f:id:mozy_ok:20190309231528p:plain
ここのリソースに追加している

3. storyboardで画面レイアウトを作る

constractionsあたりの設定で中央に表示されるようにレイアウトも固定しておく。

f:id:mozy_ok:20190309231915p:plain
シンプルにボタンのみ

4. storyboardとViewControllerをつなぐ

右上にある丸が二つ重なっているアイコンを押してstoryboardとViewControllerを表示する。
んでそののちに、storyboardでボタンを選択して、controlキーを押しながらViewControllerに引っ張っていき適当な名前を付ける。 ここでconnectionAction にするのをお忘れなく。

5. コードを書いていく

ボタンアクションをガリガリかいていく。
コードの意味はシンプルなので読み解けると思う。

まずは import AVKit する。
あとはガリガリ

@IBAction func buttonAction(_ sender: Any)
    {
        if let path = Bundle.main.path(forResource: "video", ofType: "mp4")
        {
            let video = AVPlayer(url: URL(fileURLWithPath: path))
            let videoPlayer = AVPlayerViewController()
            videoPlayer.player = video
            
            present(videoPlayer, animated: true, completion:
            {
                video.play()
            })
        }
    }

6. 完成

ちなみに7分かかった笑
f:id:mozy_ok:20190309233221p:plain

シンプルな画面
f:id:mozy_ok:20190309233202p:plain
再生画面(標準で色々ついてる)