如何恢复嵌入的 YouTube 视频?
How to resume embedded YouTube video?
我使用 //www.youtube.com/embed/JDcaMVwCr3c?wmode=opaque&showinfo=0&autoplay=1&controls=0&modestbranding=1&vq=&rel=0
url 在我的网站中嵌入了一个视频。
现在,如果用户访问网站,将播放视频,但如果用户没有观看完整视频并重新加载页面或离开网站并在一段时间后再次回来,那么视频现在是从头开始玩。
我想从用户离开的地方继续播放视频。与 YouTube 网站的方式相同。
这是 YouTube 提供的 API 吗?
请参考下面的例子加注释
<html>
<head>
</head>
<body>
<div id="ytplayer"></div>
<script>
// Load the IFrame Player API code asynchronously.
var tag = document.createElement('script');
tag.src = "https://www.youtube.com/player_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
// Replace the 'ytplayer' element with an <iframe> and
// YouTube player after the API code downloads.
var player;
function onYouTubePlayerAPIReady() {
player = new YT.Player('ytplayer', {
height: '390',
width: '640',
videoId: 'M7lc1UVf-VE', // Youtube video ID
events: {
'onReady': onPlayerReady,
'onStateChange': onPlayerStateChange,
}
});
}
function onPlayerStateChange() {
createCookie('ply_time', player.getCurrentTime(), 1); // Stats like buffer, Pause and play store time in Cookes
}
function onPlayerReady() {
player.seekTo(readCookie('ply_time')); // On ready get ccokies and start vide from that.
}
document.unload = function() { // On docucment unload set cookie
createCookie('ply_time', player.getCurrentTime(), 1);
}
window.onbeforeunload = function() { // On Window unload set cookie
createCookie('ply_time', player.getCurrentTime(), 1);
}
/*
* Start:- function to create , read and erase Cookie
*/
function createCookie(name, value, days) {
if (days) {
var date = new Date();
date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
var expires = "; expires=" + date.toGMTString();
}
else
var expires = "";
document.cookie = name + "=" + value + expires + "; path=/";
}
function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for (var i = 0; i < ca.length; i++) {
var c = ca[i];
while (c.charAt(0) == ' ')
c = c.substring(1, c.length);
if (c.indexOf(nameEQ) == 0)
return c.substring(nameEQ.length, c.length);
}
return null;
}
function eraseCookie(name) {
createCookie(name, "", -1);
}
/*
* End:- function to create , read and erase Cookie
*/
</script>
</body>
我使用 //www.youtube.com/embed/JDcaMVwCr3c?wmode=opaque&showinfo=0&autoplay=1&controls=0&modestbranding=1&vq=&rel=0
url 在我的网站中嵌入了一个视频。
现在,如果用户访问网站,将播放视频,但如果用户没有观看完整视频并重新加载页面或离开网站并在一段时间后再次回来,那么视频现在是从头开始玩。
我想从用户离开的地方继续播放视频。与 YouTube 网站的方式相同。
这是 YouTube 提供的 API 吗?
请参考下面的例子加注释
<html>
<head>
</head>
<body>
<div id="ytplayer"></div>
<script>
// Load the IFrame Player API code asynchronously.
var tag = document.createElement('script');
tag.src = "https://www.youtube.com/player_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
// Replace the 'ytplayer' element with an <iframe> and
// YouTube player after the API code downloads.
var player;
function onYouTubePlayerAPIReady() {
player = new YT.Player('ytplayer', {
height: '390',
width: '640',
videoId: 'M7lc1UVf-VE', // Youtube video ID
events: {
'onReady': onPlayerReady,
'onStateChange': onPlayerStateChange,
}
});
}
function onPlayerStateChange() {
createCookie('ply_time', player.getCurrentTime(), 1); // Stats like buffer, Pause and play store time in Cookes
}
function onPlayerReady() {
player.seekTo(readCookie('ply_time')); // On ready get ccokies and start vide from that.
}
document.unload = function() { // On docucment unload set cookie
createCookie('ply_time', player.getCurrentTime(), 1);
}
window.onbeforeunload = function() { // On Window unload set cookie
createCookie('ply_time', player.getCurrentTime(), 1);
}
/*
* Start:- function to create , read and erase Cookie
*/
function createCookie(name, value, days) {
if (days) {
var date = new Date();
date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
var expires = "; expires=" + date.toGMTString();
}
else
var expires = "";
document.cookie = name + "=" + value + expires + "; path=/";
}
function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for (var i = 0; i < ca.length; i++) {
var c = ca[i];
while (c.charAt(0) == ' ')
c = c.substring(1, c.length);
if (c.indexOf(nameEQ) == 0)
return c.substring(nameEQ.length, c.length);
}
return null;
}
function eraseCookie(name) {
createCookie(name, "", -1);
}
/*
* End:- function to create , read and erase Cookie
*/
</script>
</body>