每次循环视频加载时,我都在努力为youtube api设置循环。我只在循环中放入了一个视频

问题描述 投票:1回答:2

这是我的视频http://dynamitechefs.ch/ 我把一个视频循环播放。视频每次都在加载。如何删除视频加载? 这是我的代码

 function onYouTubeIframeAPIReady() {
    player = new YT.Player('player', {
        height: mediaParams['height'],
        width: mediaParams['width'],
        videoId: mediaParams['v'],
        playerVars: {
            controls: 1,
            showinfo: 0 ,
            startAt:1,
            rel:0,
            loop:1,
            playlist : 'BmAL33M0jcI'    
        },
        events: {
            'onReady': onPlayerReady,
            'onStateChange': onPlayerStateChange
        }
    });
}

提前致谢。

javascript youtube youtube-api playlist youtube-iframe-api
2个回答
0
投票

根据IFrame API播放器参数的documentation,当您播放单个视频播放器时,设置为1会导致播放器一次又一次播放初始视频。在播放列表播放器(或自定义播放器)的情况下,播放器播放整个播放列表,然后在第一个视频处再次播放。

请注意,目前,loop参数仅在与播放列表参数一起使用时才适用于AS3播放器。要循环单个视频,请将循环参数值设置为1,并将播放列表参数值设置为已在Player API URL中指定的相同视频ID:

 https://www.youtube.com/v/VIDEO_ID? > version=3
 &loop=1  
 &playlist=VIDEO_ID

有关更多信息,请使用此demo了解IFrame API的不同参数如何工作。


0
投票

您可以使用player.seekTo函数在视频接近结束时(即99%完成)搜索视频的开头,以将播放器缓冲区保留在内存中并防止重新加载。您可以在下面的代码中看到此示例:

var player;
// Callback for when the YouTube iFrame player is ready
function onYouTubeIframeAPIReady() {
  player = new YT.Player('player', {
    // Set Player height and width
    height: '390',
    width: '640',
    // Set the id of the video to be played
    videoId: 'Rykmwn0SMWU',
    // Setup event handelers
    events: {
      'onReady': onPlayerReady,
    }
  });
};

function onPlayerReady() {
var interval = setInterval(function(){
  console.log(player.getCurrentTime() / player.getDuration())
  if (player.getCurrentTime() / player.getDuration()  > .99) {
    player.seekTo(0)
  }
},500);
}
© www.soinside.com 2019 - 2024. All rights reserved.