埋め込まれた youtube ビデオを再生するとき、完成時に解像度の低いサムネイルを表示したくありません。代わりに、最後のフレームの高解像度画像が必要です。これは可能ですか?
最後のフレームで一時停止するか、最後のフレームの高解像度のサムネイルを作成する方法はありますか?
埋め込まれた youtube ビデオを再生するとき、完成時に解像度の低いサムネイルを表示したくありません。代わりに、最後のフレームの高解像度画像が必要です。これは可能ですか?
最後のフレームで一時停止するか、最後のフレームの高解像度のサムネイルを作成する方法はありますか?
ビデオ プレーヤーは、ステータスYT.PlayerState.ENDEDでコールバックを呼び出す前に、ステータスYT.PlayerState.PAUSEDでコールバック「onStateChange」を提供します。ここで試すことができます。
私も同じことをしています。再生ボタンでビデオを覆うためにオーバーレイを表示しているだけですが、それでもビデオの最後に表示され、その後オーバーレイが表示されます (いくつかの不具合が見られます)
この問題にも遭遇した後、私はこれに行き着きました。これは、これまでのところかなり一貫して機能しています。
var player;
var curTimer;
function onYouTubeIframeAPIReady() {
    player = new YT.Player('player', {
                    videoId: 'The Video ID',
                    playerVars: { 'rel':0, 'enablejsapi':1, 'autohide':1, 'wmode':'opaque'}
                });
    player.addEventListener('onReady', 'onPlayerReady');
    player.addEventListener('onStateChange', 'onPlayerStateChange');
}
function onPlayerStateChange(event) {
    var videoDuration = event.target.getDuration();
    var curTime = event.target.getCurrentTime();
    if ( curTime ) {
        /**  Video Already Started  */
        /**  Get video time remaining. */
        videoDuration = videoDuration-curTime;
        /**  Remove old 'setTimeout' function */
        removeTimeout(curTimer);
    }
    /**
        Note: The '.25' is time subtracted to stop video on last frame.
        Adjust this as needed.
    */
    /**  Add/Re-Add 'setTimeout' function with video time remaining. */
    curTimer = setTimeout(pauseVideo, (videoDuration-.25)*1000);
}
function removeTimeout(elTimer){
    /** Remove old timer */
    clearTimeout(elTimer);
}
function stopVideo() {
    player.stopVideo();
}
説明および/またはメモはコメント内にあります。