iOSでYouTubeの動画を自動再生する

iOSでYouTubeの動画を自動再生する

FacebookやTwitter等、動画が活用されているサービスのデータを扱う場合、動画を自動再生したいという場面も出てくるかと思います。
iOSでは動画のURLさえあればAVPlayerAVPlayerViewControllerで再生可能ですが、YouTubeの動画を再生する場合はyoutubeの提供しているライブラリを使うのが無難です。

検証環境

  • XCode8.1
  • swift2.3

CocoaPodsでライブラリをインストール

https://github.com/youtube/youtube-ios-player-helperにライブラリがあるのでCocoaPodsでインストールすることが可能です。

Podfileに以下の1行を追加してpod installを実行します。

pod "youtube-ios-player-helper", "~> 0.1.4"

実装

画面を開いたら任意の動画が再生されるというシンプルなパターンを例とします。

何も考えずに以下のように実装すると自動再生されません。

import UIKit
import youtube_ios_player_helper

class ViewController: UIViewController, YTPlayerViewDelegate {
    @IBOutlet weak var playerView: YTPlayerView!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        self.playerView.load(withVideoId: "hogefugapiyo")
        self.playerView.playVideo()
    }    
}

動画を再生する場合は以下のようにYTPlayerViewDelegateを設定し、プレイヤーがAPIの受付ができるようになった時点(playerViewDidBecomeReadyがコールされます)で再生するようにします。

import UIKit
import youtube_ios_player_helper

class ViewController: UIViewController, YTPlayerViewDelegate {
    @IBOutlet weak var playerView: YTPlayerView!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        self.playerView.delegate = self
        self.playerView.load(withVideoId: "hogefugapiyo")
    }
    
    override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }

    func playerViewDidBecomeReady(_ playerView: YTPlayerView) {
        self.playerView.playVideo()
    }
}

TAG

  • このエントリーをはてなブックマークに追加
金子 将範
エンジニア 金子 将範 rubyist

新しいことや難しい課題に挑戦することにやりがいを感じ、安定やぬるい事は退屈だと感じます。 考えるより先に手が動く、肉体派エンジニアで座右の銘は諸行無常。 大事なのは感性、プログラミングにおいても感覚で理解し、感覚で書きます。