滚动时播放youtube视频
Play youtube video when scroll is in view
使用此代码,我一滚动视频就会暂停。我想在视频消失时暂停它。我该怎么做?
//This code loads the IFrame Player API code asynchronously.
var tag = document.createElement('script');
tag.src = "https://www.youtube.com/iframe_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
//This function creates an <iframe> (and YouTube player)
var player;
function onYouTubeIframeAPIReady() {
player = new YT.Player('video', {
height: '100%',
width: '100%',
videoId: 'V6Y-ahQFQDA',
playerVars: {
'start': '1',
'color': 'white',
'controls': '1',
'showinfo': '0'
},
events: {
'onReady': playOnScroll,
'onStateChange': playOnScroll
}
});
}
前面的部分是加载视频。我认为我的问题在于这个非此即彼的陈述。我一开始滚动日志就开始命令暂停,我无法让它工作。
function playOnScroll() {
var video = document.getElementById('video');
var x = video.offsetLeft,
y = video.offsetTop,
w = video.offsetWidth,
h = video.offsetHeight,
r = x + w, //right
b = y + h, //bottom
visibleX, visibleY, visible;
visibleX = Math.max(0, Math.min(w, window.pageXOffset + window.innerWidth - x, r - window.pageXOffset));
visibleY = Math.max(0, Math.min(h, window.pageYOffset + window.innerHeight - y, b - window.pageYOffset));
visible = visibleX * visibleY / (w * h);
var percent = 0.6;
var inView = visible > percent;
if (inView) {
console.log('play');
player.playVideo();
} else {
console.log('paused');
player.pauseVideo();
}
}
window.addEventListener('scroll', playOnScroll, false);
window.addEventListener('resize', playOnScroll, false);
<script>
var tag = document.createElement('script');
tag.src = "//www.youtube.com/player_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
</script>
<script>
var players = new Array();
var playingVideo = false;
var done = false;
var iterator = 0;
var pausedVideo = "";
function createPlayer(playerInfo) {
playerVars = { 'autoplay': 0, 'controls': 0, 'rel': 0, 'showinfo': 0, 'loop': 1, 'modestbranding': 1 };
return new YT.Player(playerInfo.id, {
height: playerInfo.height,
width: playerInfo.width,
videoId: playerInfo.videoId,
playerVars,
events: {
'onReady': onPlayerReady,
'onStateChange': onPlayerStateChange
}
});
}
function onPlayerReady(event) {
// Play/pause video's which do not auto play for seamless playback
if(event.target.a.src.search('autoplay=0')) {
event.target.playVideo();
event.target.pauseVideo();
}
}
function onPlayerStateChange(event) {
if(event.data === 2){
pausedVideo = event.target.a.id;
}
if(event.data === 1){
pausedVideo = "";
}
if (event.data == YT.PlayerState.PLAYING && !done) {
done = true;
}
}
window.onYouTubeIframeAPIReady = function(){
players.push(createPlayer({
id: 'ytPlayer',
height: '506',
width: '900',
videoId: 'l-OgbAqWs20',
events: {
'onReady': onPlayerReady,
'onStateChange': onPlayerStateChange
}
}));
jq(window).scroll(function(){
_embedContainerTop = jq('.embed-container').offset().top;
if( jq(window).scrollTop() >= (_embedContainerTop - 544) && jq(window).scrollTop()<= (_embedContainerTop + 344)) {
if(typeof players[0].playVideo=="function"){
players[0].playVideo();
}
} else {
if(typeof players[0].pauseVideo=="function"){
players[0].pauseVideo();
}
}
});
};
相关文章:
- 是否可以使用iframe API在iOS浏览器上播放youtube视频
- html5视频中的Youtube类型注释
- 使用javascript将视频从我的android应用程序上传到youtube
- 如何用低音量自动启动Youtube视频(iframe)
- 使用HTML5播放器时使用Javascript更改Youtube视频
- 有没有办法在dailymotion播放器的新测试版中播放youtube视频
- 在Android Kitkat上模拟鼠标点击Youtube视频
- 我们如何在dailymotion播放器的新测试版中播放youtube视频
- Lightbox关闭时停止播放Youtube视频
- 放大弹出生成“;找不到文件”;YouTube视频的错误
- 如何获取youtube视频的缩略图
- 如何重定向到我的html网站youtube嵌入视频打开在youtube应用程序
- 从我的频道中提取最后3个youtube视频
- 检测YouTube上的360度视频
- 如何修改此功能以获得最受欢迎的视频?(YouTube API v3)
- Iframe视频(Youtube)滑动
- 检索播放列表视频YouTube API的持续时间、视频图片和视图
- 滑动方块益智游戏,视频(youtube)背景
- 就浏览器兼容性而言,ifram或
- 如何获得第一个视频结束后的最后一个视频YouTube api