Step By Work

大阪のホームページ制作会社

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

Date: 2016.07.06
Update: 2023.05.28

執筆・監修

上杉 洋 Hiroshi Uesugi

1991年生まれ。 株式会社ステップバイワーク代表。 2013年に株式会社n.uを設立。 2015年にStep by workとして独立。 2021年株式会社ステップバイワークとして法人化。 HP制作/SEO対策/コンテンツ制作/動画制作/YouTube運用/写真撮/WordPressを全て一人でやります。

ホームページに埋め込んだ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();)は問題なく実行されたことを確認しています。

この記事へのコメント 0件