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);
});
ミュート状態でない場合は変更できますが、ミュートにした状態だとボリューム操作ができませんでした。
コメントが承認されるまで時間がかかります。