我在尝试使用基本iframe使视频始终循环播放方面感到非常沮丧。我没有通过代码与API进行交互。我只是拥有一个autoplay=1,mute=1,loop=1
的iframe。我尝试过使用独立视频,也尝试过播放列表(使用list=
[ID] ,listType=playlist
),但遇到了同样的问题。有时播放器会循环播放视频,有时则不会。每次我想出解决方案并准备部署该应用程序时,我都会再次对其进行测试,并且视频无法循环播放。
Windows 10
Chrome 71.0.3578.98
角度6.0.3
答案 0 :(得分:0)
您可以选择以下任一选项:
Check my answer,在此我介绍了如何设置URL以创建播放列表(使用单个videoId
) 。
使用YouTube iframe Player API设置视频并(视频结束后),调用playVideo()
函数以播放当前视频=因此,创建循环
这是代码:-不幸的是,您看不到它在这里工作,但是,您可以看到working jsfiddle 1
var tag = document.createElement('script');
tag.src = "https://www.youtube.com/iframe_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
// Variables of the divs (where the YouTube iframe will load):
var player;
function onYouTubeIframeAPIReady() {
// Div player:
player = new YT.Player('player', {
height: '360',
width: '640',
videoId: 'xPCZEoGJi_4',
playerVars: {
'autoplay': 1,
'loop': 1,
'mute': 1
},
events: {
'onReady': onPlayerReady,
'onStateChange': onPlayerStateChange
}
});
}
// 5. The API calls this function when the player's state changes.
function onPlayerStateChange(event) {
// When the video ends, it will play again.
// See: https://developers.google.com/youtube/iframe_api_reference?hl=en#Events
if (event.data == YT.PlayerState.ENDED) {
player.playVideo();
}
}
// Div "player" - The API will call this function when the video player is ready.
function onPlayerReady(event) {
event.target.playVideo();
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<div id="player"></div>
1 如果视频(一旦加载)没有播放,则必须手动播放该视频-这是jsfiddle的某种限制。