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

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

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

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

Q&A

1回答

579閲覧

Youtube動画を再生するコードのミュート処理

11mi_se14

総合スコア0

JavaScript

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

0グッド

0クリップ

投稿2021/04/17 09:18

編集2021/04/20 15:01

前提・実現したいこと

以下ソースコードにおいて、動画の音声ミュート処理をしたいのですが、どこに何を入れれば良いのかがわからず途方に暮れています。

当方JavaScript全くの初心者であり、以下リンクのようなMacbookの壁紙に動画を入れるという処理をしたく、触っているという状態です。

忙しい人のための「デスクトップ焚き火」導入方法【mac】【動く壁紙】

ソースコードにミュート処理ができていないため、壁紙で表示される動画から音が出てしまいます。
以下のサイトを参考に見て、試行してみましたが上手く作動しませんでした。

参考にしたサイト
videoタグの属性やJSを使用した動画のコントロール
動画ファイルを自動再生する
###最新修正ソースコード

JavaScript

1var w = window, player; 2// 再生したいyoutubeの動画id 3var vid = 'Ftm2uv7-Ybw'; 4 5var tag = document.createElement('script'); 6tag.src = "https://www.youtube.com/iframe_api"; 7var firstScriptTag = document.getElementsByTagName('script')[0]; 8firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); 9// プレイヤーが使用可能になったとき 10function onPlayerReady(event) { 11 // ミュートする 12 event.target.mute(); 13} 14w.onYouTubeIframeAPIReady = function() { 15 player = new YT.Player('video', { 16 events: { 17 // イベントを登録 18 'onReady': onPlayerReady, 19 } 20// 置き換えるHTML要素のid 21 videoId: vid, 22 playerVars: { 23 rel: 0, //動画再生後の関連動画を表示しない 24 showinfo: 0, //動画再生前に動画情報を表示しない 25 autoplay: 1, //動画準備後に自動再生 26 loop: 1 //ループ設定 27 }, 28 events: { 29 onStateChange: function(e) { 30 // 再生終了後 31 if ( e.data == YT.PlayerState.ENDED ) { 32 //再生 33 e.target.playVideo(); 34 } 35 } 36 } 37 }); 38 player.setLoop(true); 39 40};

ソースコード

JavaScript

1var w = window, player; 2// 再生したいyoutubeの動画id 3var vid = 'Ftm2uv7-Ybw'; 4 5var tag = document.createElement('script'); 6tag.src = "https://www.youtube.com/iframe_api"; 7var firstScriptTag = document.getElementsByTagName('script')[0]; 8firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); 9 10w.onYouTubeIframeAPIReady = function() { 11 player = new YT.Player('video', { // 置き換えるHTML要素のid 12 videoId: vid, 13 playerVars: { 14 rel: 0, //動画再生後の関連動画を表示しない 15 showinfo: 0, //動画再生前に動画情報を表示しない 16 autoplay: 1, //動画準備後に自動再生 17 loop: 1 //ループ設定 18 }, 19 events: { 20 onStateChange: function(e) { 21 // 再生終了後 22 if ( e.data == YT.PlayerState.ENDED ) { 23 //再生 24 e.target.playVideo(); 25 } 26 } 27 } 28 } 29 }); 30 player.setLoop(true); 31};

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

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

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

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

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

guest

回答1

0

以下のコードを追加すれば音声をミュートにすることができます

js

1w.onYouTubeIframeAPIReady = function () { 2 player = new YT.Player('video', { 3 ... 4 events: { 5 // イベントを登録 6 'onReady': onPlayerReady, 7 } 8 ....

js

1// プレイヤーが使用可能になったとき 2function onPlayerReady(event) { 3 // ミュートする 4 event.target.mute(); 5}

投稿2021/04/17 09:29

編集2021/04/20 00:35
mouse_484

総合スコア759

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

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

11mi_se14

2021/04/19 15:14 編集

mouse_484様 ありがとうございます。大変恐縮ですが、上記コードをどの位置に追加すれば良いのでしょうか? 一番最後に追加してもミュートになりませんでした。 お手数をおかけしますが、お教えいただけますと幸いです。
mouse_484

2021/04/20 00:36

イベントを登録する部分を書き忘れていました 最初のコードはそのままで YT.playerのeventsオプションを追記してください
11mi_se14

2021/04/20 15:03

ありがとうございます。 何となく、ここかなという場所にコピペしてみましたが、動作しません。「最新修正ソースコード」に現在のコードを貼り付けています。こちらどの箇所が間違っていますでしょうか? お手数をおかけし恐縮ですが、ご教授いただけますと幸いです。
mouse_484

2021/04/21 00:44

events 重複してるのでまとめればよいのでは?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問