YouTubeでボリュームを変更しようとしてできなかったことがあり、なんでだろうと調べてみると、ユーザーの操作でミュートになっている場合、APIからボリュームの設定ができないようです。
サンプルコード
HTML
<div id="sample"></div> <button id="vol">ボリュームを50に変更</button>
JavaScript
// YouTube Player APIを読み込む 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 ytArea = 'sample'; // 埋め込むYouTube ID var ytID = 'zqGpHOLGIlo'; // プレーヤーのサイズを指定 var ytWidth = 640; var ytHeight = 390; // API読み込み後にプレーヤー埋め込み function onYouTubeIframeAPIReady() { ytPlayer = new YT.Player(ytArea, { height: ytHeight, width: ytWidth, videoId: ytID }); } var vol = document.getElementById('vol'); vol.addEventListener('click', function () { ytPlayer.setVolume(50); });
ミュート状態でない場合は変更できますが、ミュートにした状態だとボリューム操作ができませんでした。
コメントが承認されるまで時間がかかります。