前提・実現したいこと
サムネクリックで全画面再生、一時停止・再生終了時に全画面終了。
IFrame Player APIでサイト内に埋め込み、fullScreen apiで全画面にしています。
発生している問題・エラーメッセージ
IE以外では動作確認できましたが、IE11でのみフルスクリーン(全画面)になりません。
IEのコンソールに表示される内容
Access is denied.
該当のソースコード
html
1<div id="video"></div>
css
1:-webkit-full-screen video { 2 width: 100%; 3} 4 5:-moz-full-screen video { 6 width: 100%; 7} 8 9:full-screen video { 10 width: 100%; 11} 12 13:fullscreen video { 14 width: 100%; 15} 16 17:-ms-fullscreen iframe{ 18 width: 100% ; 19}
js
1// IFrame Player API の読み込み 2var tag = document.createElement('script'); 3tag.src = "https://www.youtube.com/iframe_api"; 4var firstScriptTag = document.getElementsByTagName('script')[0]; 5firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); 6 7var ytPlayer; 8var youtubeId = 'YouTubeのID'; 9function onYouTubeIframeAPIReady() { 10 11 // サムネイルクリック時にYouTubeを埋め込むように設定 12 document.getElementById('movie_thumb').addEventListener('click', function() { 13 $("#movie_thumb").css({ display: "none" }); 14 ytPlayer = new YT.Player( 15 'video', // 埋め込む場所の指定 16 { 17 width: 1000, // プレーヤーの幅 18 height: 560, // プレーヤーの高さ 19 videoId: youtubeId, 20 playerVars: { 21 autoplay: 1 , 22 loop:0, 23 rel:0 24 }, 25 events: { 26 'onReady': onPlayerReady, 27 'onStateChange': onPlayerStateChange 28 } 29 } 30 ); 31 }); 32} 33 34// プレーヤー読み込み後の処理 35function onPlayerReady(event) { 36 event.target.playVideo(); 37} 38 39function requestFullScreen() { 40 if (video.requestFullScreen) { 41 video.requestFullScreen(); 42 } else if (video.webkitRequestFullScreen) { 43 video.webkitRequestFullScreen(); 44 } else if (video.webkitEnterFullscreen) { 45 video.webkitEnterFullscreen(); 46 } else if (video.mozRequestFullScreen) { 47 video.mozRequestFullScreen(); 48 } else if (video.msRequestFullscreen) { 49 video.msRequestFullscreen(); 50 } 51} 52function exitFullscreen() { 53 if (document.exitFullscreen) { 54 document.exitFullscreen(); 55 } else if (document.cancelFullScreen) { 56 document.cancelFullScreen(); 57 } else if (document.mozCancelFullScreen) { 58 document.mozCancelFullScreen(); 59 } else if (document.webkitCancelFullScreen) { 60 document.webkitCancelFullScreen(); 61 } else if (document.msExitFullscreen) { 62 document.msExitFullscreen(); 63 } 64} 65 66function onPlayerStateChange(event) { 67 var ytStatus = event.data; 68 // 再生終了したとき 69if (ytStatus == YT.PlayerState.ENDED) { 70 exitFullscreen(); 71 console.log("再生終了"); 72 } 73 // 再生中のとき 74 if (ytStatus == YT.PlayerState.PLAYING) { 75 requestFullScreen(); 76 console.log("再生中"); 77 } 78 // 停止中のとき 79 if (ytStatus == YT.PlayerState.PAUSED) { 80 exitFullscreen(); 81 console.log("停止"); 82 } 83} 84
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答2件
あなたの回答
tips
プレビュー