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")
再生パラメータ(playerVars)で viewの範囲内だけで表示するなど、いろいろコントロールできます。
PlayerView.load(withVideoId: "r8ZKMVIo8IE",
playerVars: ["playsinline":1, // 全画面ではなくViewの範囲内で再生。
"playlist":["0SJHPnRY8YA"] // 最初の動画の後に自動再生されるプレイリスト。
])
6、再生の制御
PlayerView.playVideo() // 再生
PlayerView.pauseVideo() // 一時停止
PlayerView.stopVideo() // 停止
7、デリゲートメソッド
このようなデリゲートメソッドがあります。
再生時間に応じて呼ばれるメソッドや、再生画質の変化に応じて呼ばれるメソッドなどがあります。
例えば、Player表示後に自動で再生開始したい場合は、再生準備完了時に呼ばれるデリゲートメソッドを使います。
func playerViewDidBecomeReady(_ playerView: WKYTPlayerView) {
PlayerView.playVideo()
}
🐣
お仕事のご相談こちらまで
rockyshikoku@gmail.com
Core MLを使ったアプリを作っています。
機械学習関連の情報を発信しています。