質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

YouTube

YouTubeとはユーザーがビデオをアップロード・共有・閲覧できるビデオ共有ウェブサイトです。

YouTube API

YouTube APIはYouTubeのビデオコンテンツと機能性をウェブサイト、アプリケーション、デバイスに統合することを可能にします。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

iPhone

iPhoneとは、アップル社が開発・販売しているスマートフォンです。 同社のデジタルオーディオプレーヤーiPodの機能、電話機能、インターネットやメールなどのWeb通信機能の3つをドッキングした機器です。

Q&A

解決済

1回答

344閲覧

サイトでYoutubeアプリが自動で起動してしまうのをやめたい

sobakoo

総合スコア25

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

YouTube

YouTubeとはユーザーがビデオをアップロード・共有・閲覧できるビデオ共有ウェブサイトです。

YouTube API

YouTube APIはYouTubeのビデオコンテンツと機能性をウェブサイト、アプリケーション、デバイスに統合することを可能にします。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

iPhone

iPhoneとは、アップル社が開発・販売しているスマートフォンです。 同社のデジタルオーディオプレーヤーiPodの機能、電話機能、インターネットやメールなどのWeb通信機能の3つをドッキングした機器です。

0グッド

0クリップ

投稿2017/07/05 09:19

YouTube Player APIを使用して、サイト内にYouTube動画を再生しています。
動画はサイトにアクセスしたら、自動再生が始まる仕組みです。

PCサイト(SP最適化なし)なのですが、スマホでアクセスしたとき、
自動再生の関係か、YouTubeアプリが強制的に立ち上がってしまうそうです。
(私の環境ではそれが見られないので、現在環境は確認中です)

ただ、もし「SPの場合は自動再生をやめる」など別の方法がありましたら、教えて頂けますと嬉しいです。
YouTube Player APIでそのような設定は可能なのでしょうか?

申し訳ないのですが、JSなどプログラム系の知識が足りず、
知恵をかしていただけますと幸いです。。

下記、YouTube Player APIのコードになります。
(Wordpress使用しているためphpコードが含まれております)

<script> var tag = document.createElement('script'); tag.src = "https://www.youtube.com/iframe_api"; var firstScriptTag = document.getElementsByTagName('script')[0]; firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); var player; function onYouTubeIframeAPIReady() { player = new YT.Player('player', { height: '200', width: '360', videoId:'<?php echo get_option('movie_id');?>', wmode: 'transparent', playerVars:{ 'loop': '1', 'playlist':'<?php echo get_option('movie_id2');?>', 'rel': '0', 'showinfo': '0', 'color': 'white', 'autoplay': '1', }, events: { 'onReady': onPlayerReady, 'onStateChange': onPlayerStateChange } }); } function onPlayerReady(event) { event.target.playVideo(); event.target.mute(); } function onPlayerStateChange(event) { } </script>

よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

javascript

1function onPlayerReady(event) { 2 event.target.playVideo(); 3 event.target.mute(); 4 }

上記がYouTubeのAPIで再生準備が整ったタイミングで実行される関数です。
この中にif文でスマホからのアクセスのときはevent.target.playVideo();event.target.mute();を実行しないという処理を加えればよろしいのでは無いでしょうか。

こんな感じでしょうか。

javascript

1 2/** 3 * ユーザーのデバイスを返す 4 * @return スマホ(sp)、タブレット(tab)、その他(other) 5 */ 6var getDevice = (function(){ 7 var ua = navigator.userAgent; 8 if(ua.indexOf('iPhone') > 0 || ua.indexOf('iPod') > 0 || ua.indexOf('Android') > 0 && ua.indexOf('Mobile') > 0){ 9 return 'sp'; 10 }else if(ua.indexOf('iPad') > 0 || ua.indexOf('Android') > 0){ 11 return 'tab'; 12 }else{ 13 return 'other'; 14 } 15})(); 16 17 18function onPlayerReady(event) { 19 if(getDevice === 'other'){ //スマホとタブレット以外は動画再生 20 event.target.playVideo(); 21 event.target.mute(); 22 } 23} 24 25// 他の処理は省略 26

投稿2017/07/05 16:48

chieeeeno

総合スコア217

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sobakoo

2017/07/06 02:31

ありがとうございます!!こちらで理想通りの動きになりました!! onPlayerReadyが自動再生の部分なのでここをSP・タブレット時で切り分けて頂いたんですね。 ちなみに自動再生はAndroid環境でされてしまうみたいでした。 詳しく解説して頂いて嬉しいです。本当にありがとうございます!
chieeeeno

2017/07/06 17:26

onPlayerReady()がと言うよりは、 onYouTubeIframeAPIReady()内の events: { 'onReady': onPlayerReady, 'onStateChange': onPlayerStateChange } で、'onReady'で紐付けている関数がonPlayerReadyなので、 それが実行されています。 別の関数を指定したらそれが実行されます。 ユーザーエージェントの判定は割りとテキトーに書いたので、 そこはご自身でAndroidの判定ができるように修正ください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問