質問: "ended" ) { // フルスクリーンが解除された時に、video_stateがendedなら、再生が完了しているとみなして、 // 完了メッセージがかかれたページに移動 } }); video.webkitEnterFullScreen(); // フルスクリーン状態にして、 video.play(); // 再生 ``` しかし、残念ながら`fullscreenchange`イベントが発火せず行き詰ってしまいました。 `webkitFullScreen`と書いているように、まだベンダープレフィックスを付けないと行けないと思ってwebkitを付けてみて試してみましたが(`webkitfullscreenchange,webkitFullScreenChange`)それでもうまく行きませんでした。 色々と調べていると、Full Screen API自体がiOSに対応していないなんてことも書かれていたんですが、`webkitFullScreen`は動作するしで、よくわからん状態です>< 確認環境は、MacのSimulatorを使ってiOS9.2で確認しています。 どなたかよい方法をご存知の方、ご教授願います。 ### 追記1: MacのChromeでは`webkitfullscreenchange`でうまくイベントが発火しました。。
回答: kei344さんから頂いた回答をヒントにして下記のような形で解決できました。 ``` // ビデオが最後まで再生された時 video.addEventListener("ended", function (evt) { //ビデオが完全に終了した場合は、フルスクリーンを解除 this.webkitExitFullScreen(); console.log("ended"); // 完了ページへの遷移を実行 .. }); // ビデオが停止された時 video.addEventListener('pause', function (evt) { // ビデオを停止時のスクリーンの状態を確認 checkPausedState(this); }); function checkPausedState (video) { setTimeout(function () { // videoのフルスクリーンモードを確認 if (video.webkitDisplayingFullscreen) { // 動画が停止中か確認し、停止中なら再帰的に処理を実行 if (video.paused) { console.log("full screen mode means still pausing.."); checkPausedState(video); } } else { // フルスクリーンモードから抜けている場合はここを実行 console.log("video playing canceled"); // 中断ページへの遷移を実行 .. } }, 100); } ``` 動画を中断する方法が、「**"閉じる"ボタンを押して停止+フルスクリーン解除**」と「**"停止"を押したあとに"閉じる"を押してフルスクリーン解除**」の2つがあって、pauseイベント発火時に必ずしもフルスクリーンが解除されている訳ではなかったので、`setTimeout()`で状態確認をして対応しました。 また、色々と調べていると、どうもiOS独自(?)のHTMLVideoElementなるものが存在するようで、`webkitEnterFullScreen()`や`webkitDisplayFullscreen`はそのAPIが提供する機能です。 なので他デバイスでの実装にはAPIの実装状況をみて処理の切り替えが必要になりますが、今回はiPadのみ対象としていますので今回の実装はここまでにしときます。