Загрузка многих видео YouTube за другим - PullRequest
0 голосов
/ 26 декабря 2018

Youtube api запускает событие Ended, когда оно фактически воспроизводится ...

Я пытаюсь загрузить несколько эпизодов из многих видео на YouTube.

// create youtube player
var player;

function onYouTubePlayerAPIReady() {
player = new YT.Player('player', {
  height: '390',
  width: '640',
  videoId: videoids[0],
  playerVars: {
           autoplay: 0,      // Don't autoplay the initial video
           start:'3150',
           end:'3155',
           rel: 0,           //  Don’t show related videos
           theme: "light",   // Use a light player instead of a dark one
           controls: 1,      // Show player controls
           showinfo: 0,      // Don’t show title or loader
           modestbranding: 1 // No You Tube logo on control bar
    },

  events: {
    'onReady': onPlayerReady,
    'onStateChange': onPlayerStateChange
  }
 });
}

// autoplay video
function onPlayerReady(event) {
console.log('onPlayerReady');
console.log(event);
event.target.setPlaybackRate(0.5);
event.target.playVideo();   
}

function onPlayerStateChange(event) {   
console.log('onPlayerStateChange='+event.data);
  if(event.data == 0) {       
i++;
console.log('i=');
console.log(i);

if (i<videoids.length)
{
      //event.target.stopVideo();



     player.cueVideoById({'videoId': videoids[i],
           'startSeconds': 6,
           'endSeconds': 12});
event.target.setPlaybackRate(0.5);
event.target.playVideo();

  }
}
}

Проблема в строке "if (event.data == 0)".На самом деле проблема не в этой строке, а в том, как youtube запускает / запускает события.

Поскольку у меня есть consoloe.log, я получаю следующие результаты для загрузки одного за другим 4 видео на YouTube.

    onPlayerReady
    ytcue.js?pk9ioi:59 onPlayerStateChange=-1
    ytcue.js?pk9ioi:59 onPlayerStateChange=3
    ytcue.js?pk9ioi:59 onPlayerStateChange=-1
    ytcue.js?pk9ioi:59 onPlayerStateChange=1
    ytcue.js?pk9ioi:59 onPlayerStateChange=0
    ytcue.js?pk9ioi:62 i=
    ytcue.js?pk9ioi:63 1
    ytcue.js?pk9ioi:69 L2UCRNldC3s
    ytcue.js?pk9ioi:59 onPlayerStateChange=-1
    ytcue.js?pk9ioi:59 onPlayerStateChange=0
    ytcue.js?pk9ioi:62 i=
    ytcue.js?pk9ioi:63 2
    ytcue.js?pk9ioi:69 kbYgWfuF1zg
    ytcue.js?pk9ioi:59 onPlayerStateChange=-1
    ytcue.js?pk9ioi:59 onPlayerStateChange=3
    ytcue.js?pk9ioi:59 onPlayerStateChange=-1
    ytcue.js?pk9ioi:59 onPlayerStateChange=3
    ytcue.js?pk9ioi:59 onPlayerStateChange=-1
    ytcue.js?pk9ioi:59 onPlayerStateChange=3
    ytcue.js?pk9ioi:59 onPlayerStateChange=1
    ytcue.js?pk9ioi:59 onPlayerStateChange=0
    ytcue.js?pk9ioi:62 i=
    ytcue.js?pk9ioi:63 3
    ytcue.js?pk9ioi:69 -A5ArNZ6uDE
    ytcue.js?pk9ioi:59 onPlayerStateChange=-1
    ytcue.js?pk9ioi:59 onPlayerStateChange=0
    ytcue.js?pk9ioi:62 i=
    ytcue.js?pk9ioi:63 4
    ytcue.js?pk9ioi:59 onPlayerStateChange=-1
    ytcue.js?pk9ioi:59 onPlayerStateChange=3
    ytcue.js?pk9ioi:59 onPlayerStateChange=-1
    ytcue.js?pk9ioi:59 onPlayerStateChange=1
    ytcue.js?pk9ioi:59 onPlayerStateChange=0
    ytcue.js?pk9ioi:62 i=
    ytcue.js?pk9ioi:63 5

Это означает, что для загруженного второго и четвертого видео сработали события -1 и 0.

Я добавил точку останова в Chrome (я тестирую на Chrome и Win10)и фактически для второго видео фильм начинает воспроизводиться, и вызванное событие имеет значение 0, что означает КОНЕЦ, что очень странно, поскольку видео даже не загружено / не начало воспроизводиться (нет события 1).

проблема в том, что video2 фактически пропускается, так как затем загружается video3.Video4, несмотря на то, что получает -1 (не запущен) и 0 (завершен), начинает играть, поскольку он последний

Проблема, как я вижу, состоит в том, что 0 запускается слишком рано для видео 2 и 4.

На данном этапе скорость воспроизведения, начало и конец являются экспериментальными.

Как заставить все видео воспроизводиться нормально?Я пробовал loadvideobyId, и он такой же, как cuevideobyid

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...