Feel Physics Backyard

HoloLensの出張授業をする会社で、教材を開発しています

たった8行でiOSアプリの初回起動時にビデオを再生する(iOS9)

f:id:weed_7777:20161014181052p:plain

起動初回時にチュートリアルビデオを再生できれば、アプリの使い方をガイドすることができます。iOSにはAVKitというAppleがつくったとは思えない親切なフレームワークがあり、1行で動画を再生することができます。

これを使って、初回アプリ起動時に、チュートリアルのビデオを再生してみましょう。

準備

コーディングする前に以下のように準備します。

1. ストーリーボードにビデオビューを追加する

f:id:weed_7777:20161014170135p:plain

上図の AVKit Player View Controller をストーリーボードにドラックして落とします。

2. ビデオビューとメインビューを遷移でつなぐ

f:id:weed_7777:20161014165241p:plain

上図のようにAV Player View ControllerView Controllerをセグエ(遷移)でつなぎます。遷移元で右クリックしたまま遷移先まで引っ張り、放します。遷移の種類を聞かれるので「一時的に表示(Present Modally)」を選択します。

3. 遷移のIDを指定する

f:id:weed_7777:20161014165826p:plain

セグエを選択して、上図のようにそのIDを指定します。ここでは「SegueToVideoView」としました。

4. ビデオビューのビューコントローラを用意する

TutorialVideoPlayerViewController.swiftというファイルを用意します。

5. ビデオビューのクラスに先ほどつくったビューコントローラを指定する

f:id:weed_7777:20161014170809p:plain

ストーリーボードのビデオビューを選択して、上図のようにそのクラスを指定します。

6. チュートリアルのビデオをプロジェクトに入れる

f:id:weed_7777:20161014171033p:plain

上図のようにドラッグして落として入れます(別に「Resources」というグループをつくる必要はありません。趣味です😅)。

コーディング

AppDelegate.swift

以下の実質3行を追加します:

    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
        // Override point for customization after application launch.
        
        // NSUserDefaults のインスタンス取得
        let ud = NSUserDefaults.standardUserDefaults()
        // デフォルト値の設定
        let dic = ["firstLaunch": true]
        ud.registerDefaults(dic)

        return true
    }

ViewController.swift

以下の実質4行を追加します:

override func viewDidAppear(animated: Bool) {
        //初回起動判定
        let ud = NSUserDefaults.standardUserDefaults()
        if ud.boolForKey("firstLaunch") {
            
            // 初回起動時の処理
            self.performSegueWithIdentifier("SegueToVideoView", sender: self)
            
            // 2回目以降の起動では「firstLaunch」のkeyをfalseに
            ud.setBool(false, forKey: "firstLaunch")
        }
    }

TutorialVideoPlayerViewController.swift

以下の実質1行を追加します:

override func viewDidLoad() {
        super.viewDidLoad()

        // 動画ファイルを再生する
        let url = NSBundle.mainBundle().URLForResource("tutorial", withExtension: "mov")
        self.player = AVPlayer(URL: url!)
    }

できあがりです


Tutorial of Physics Education App "Feel Physics Viecle"

Feel Physics Viecle

Feel Physics Viecle

  • Tatsuro Ueda
  • Education
  • Free

参考

apploid.jp

makotton.com

www.dorapro.co.jp

stackoverflow.com

こちらも…

qiita.com

ありがとうございました!