埋め込まれた 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();
}
説明および/またはメモはコメント内にあります。