LoginSignup
4
10

More than 3 years have passed since last update.

アプリにYoutubeプレイヤーを組み込んで制御できます。
IMG_1516.PNG

YoutubePlayer-in-WKWebViewというオープンソースライブラリをつかいます。

Youtube公式のドキュメントでは
youtube-ios-player-helperが使用されていますが、これは現在Apple非推奨となっているUIWebViewを使っていますので、この記事では推奨のWKWebViewにアップグレードされた上記ライブラリを使います。

手順

1、CocoaPods初期化

ターミナルからアプリのディレクトリに移動して下記実行。

pod init

2、YoutubePlayer-in-WKWebViewをCocoaPodsでインストール

アプリのディレクトリでPodfileを開いて下記を追記。

  # Pods for YourProject
pod "YoutubePlayer-in-WKWebView", "~> 0.3.0"

ターミナルから下記実行。

pod install

3、PlayerViewを設置

ストーリーボードから取り付ける場合は、UIViewを置いて、カスタムクラスでWKYTPlayerViewを選びます。

@IBOutlet weak var PlayerView: WKYTPlayerView!

4、インポートとデリゲート設定

import YoutubePlayer_in_WKWebView

class ViewController: UIViewController,WKYTPlayerViewDelegate {

    override func viewDidLoad() {
        super.viewDidLoad()

        YTPlayerView.delegate = self
    }
}

5、再生

playerView.loadWithVideoId("r8ZKMVIo8IE")

IMG_1515.PNG
デフォルトは全画面↑

再生パラメータ(playerVars)で viewの範囲内だけで表示するなど、いろいろコントロールできます。

PlayerView.load(withVideoId: "r8ZKMVIo8IE",
                playerVars: ["playsinline":1, // 全画面ではなくViewの範囲内で再生。
                             "playlist":["0SJHPnRY8YA"] // 最初の動画の後に自動再生されるプレイリスト。
                ])

IMG_1516.PNG
インライン再生↑

6、再生の制御

PlayerView.playVideo() // 再生
PlayerView.pauseVideo() // 一時停止
PlayerView.stopVideo() // 停止

7、デリゲートメソッド

このようなデリゲートメソッドがあります。
スクリーンショット 2020-10-13 13.28.27.png
再生時間に応じて呼ばれるメソッドや、再生画質の変化に応じて呼ばれるメソッドなどがあります。

例えば、Player表示後に自動で再生開始したい場合は、再生準備完了時に呼ばれるデリゲートメソッドを使います。

func playerViewDidBecomeReady(_ playerView: WKYTPlayerView) {
    PlayerView.playVideo()
}

🐣


お仕事のご相談こちらまで
rockyshikoku@gmail.com

Core MLを使ったアプリを作っています。
機械学習関連の情報を発信しています。

Twitter
Medium

4
10
1

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
4
10