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

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

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

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

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

1回答

1333閲覧

背景を動画にして、ページ遷移すると一瞬緑画面になる

mai24451

総合スコア14

YouTube

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

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2020/09/19 17:02

全ページの背景に動画を埋め込んでいます。
使用しているのは、ytPlayerです。
ページ遷移時に、一瞬全画面が緑になってしまうのですが、こちらの解決方法は何かありますでしょうか?
サイトにはローディングアニメーションも組み込んでおります。

動画は4分のものをループさせています。
背景の動きを説明すると、

動画⇒一瞬全体が緑に⇒ローディング画面の背景色

となります。

検証サイトなので、こちらにURLは載せられないのですが、ytPlayerのオプションを書いておきます。

html

1 <div id="bgmovie"> 2 <div id="ytPlayer" data-property="{ 3 videoURL: '動画ID', //動画IDまたはURLを記述 4 containment: '#bgmovie', //動画の位置(親要素) 5 autoPlay: true, //自動再生 6 loop: 1, //ループ再生 7 mute: true, // 8 startAt: 0, //動画の再生位置 9 showControls: false, //コントロールの非表示 10 showYTLogo: false, //youtubeのロゴ等を非表示 11 stopMovieOnBlur: false 12 }"></div> 13 14<script type="text/javascript"> 15 $("#ytPlayer").YTPlayer(); 16</script>

調べてもこれといった情報が出てこず途方に暮れています。
何か原因があるのでしょうか?
動画の重さや読み込みに時間がかかっているとしたら、対策などお教えいただけませんか?

お力添えいただけると幸いです。

宜しくお願いいたします。

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

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

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

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

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

kuma_kuma_

2020/09/19 18:17

まず動画を変えても同じ現象がおきますか? 次に <script> // 移動する前にプレイヤー自体を非表示にする window.onbeforeunload = function (e){ document.getElementById('ytPlayer').style.visibility ="hidden"; } </script> これがダメなら同じタイミングで再生停止(.disconnect())してみて下さい
mai24451

2020/09/20 13:08

ご回答ありがとうございます。 動画を変えても同じような現象が起きました。 一つ目のスクリプトを書いてみましたが、ダメでした。。。 同じタイミングで、とありますが、disconnectはどこに書けばいいのでしょう。。。 非表示⇒再生停止なので、hiddenの箇所でしょうか?
kuma_kuma_

2020/09/20 13:58

// 移動する前にプレイヤー自体を非表示にする window.onbeforeunload = function (e){ // この中でdisconnect() } 一応YouTubeのページではそのように対策されているのを確認しているのですが...
mai24451

2020/09/20 14:47

<script> // 移動する前にプレイヤー自体を非表示にする window.onbeforeunload = function (e){ document.getElementById('ytPlayer').disconnect(); } </script> こちらを記載してみましたが、一瞬いけたかと思いましたが、やはりダメでした。 ページ遷移の際、緑が出ない時もあるのですが、同じページをキャッシュ消して読み込みすると結構長い間緑になってしまいます。 解決は難しいのでしょうかね。。。
guest

回答1

0

ベストアンサー

実際の動きを考えると
0. 現在のブラウザが終了されることが通知される
0. タグ情報のリセットが下位の物から行われる
0. プレイヤーのタグが消える前に動画の読み込みが強制停止
0. この時点で動画の画像変換でエラーになるので緑が表示される
0. ブラウザが別の内容を再表示

一番よいのは画像変換でエラーさせない事でこれはファイル形式で決まります
でも今回はytPlayerですのでYouTube上の動画ですよね?
これは無理

YouTube 埋め込みプレーヤーとプレーヤーのパラメータ
JavaScript Player API のサポートは終了しています。
という事で

こちらの記述方法に変更してみて下さい。
IFrame Player API

それでもダメなら

JavaScript

1window.onbeforeunload = function (e){ 2 player.clearVideo(); 3}

を試してみて下さい。

投稿2020/09/20 15:13

編集2020/09/20 15:14
kuma_kuma_

総合スコア2506

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問