youtubeAPIを使用してWebサイトに動画を埋め込み

公開日:2016/07/06 更新日:2020/02/24

ホームページに埋め込んだyoutube動画をオリジナルにカスタマイズされたボタンで再生や停止などの制御をしたいというご依頼があり、YoutubeAPIを使用しての制作を行いました。

ご依頼のイメージとしては無印のサイトの様な感じです。

http://sleep.muji.net/ja/

基本的な使い方については以下サイト様を参考にさせていただきました。

YouTube Player APIを使って色々やってみる

youtubeAPIを使用して再生した際にiPhoneとiPadで動かなくなる問題

AndroidではPCの記述そのままで動画が再生されたのですが、iPhoneとiPadで再生ボタンを押すと再生されないという問題が有りました。

調べてみると、iOSではytPlayer.playVideo();の関数では再生を行えないようになっているみたいです。

iPhoneとiPadの場合はyoutubeのページに遷移して対応

解決策としては、埋め込まれたyoutube動画に表示されるもともとの再生ボタンをタップしてもらう必要があります。

a (1)

加えてytPlayer.playVideo();の関数が呼び出されないようにしましょう!
この関数が呼ばれるとリロードする以外で動画を再生する方法がなくなってしまいます。

また、以下のコードではiPhoneとiPadの場合にyoutubeのページへ移動してから再生されるように記述しています。

// 再生
$('#play').click(function() {
if(playerReady) {
// iphoneとipadの場合
if (navigator.userAgent.indexOf('iPhone') > 0 || navigator.userAgent.indexOf('iPad') > 0 || navigator.userAgent.indexOf('iPod') > 0 || navigator.userAgent.indexOf('Android') > 0) {
document.location = "https://www.youtube.com/watch?v=0wT4SmE7dx8";//youtubeページへ遷移
}else{
ytPlayer.playVideo();
}
}
});

補足

再生するための関数(ytPlayer.playVideo();)はiOSで実行することはできないが、動画を一時停止する関数(ytPlayer.pauseVideo();)は問題なく実行されたことを確認しています。

上杉 洋

1991年生まれ。株式会社ステップバイワーク代表。2013年からホームページ制作の業界に入り、以後フリーランスを経て2022年に起業。 独自の理論で費用対効果の高いホームページを作るため日々精進しています。