API проигрывателя YouTube - найдите и воспроизведите - PullRequest
0 голосов
/ 10 ноября 2018

У меня проблема при попытке использовать .seekTo() с API проигрывателя YouTube. В первый раз, когда я установил .seekTo(), видео будет правильно искать значение (например, 4 секунды), а затем воспроизведется [без меня, выдав .playVideo()]. Видео останавливается, когда я звоню .seekTo() во второй раз, и видео воспроизводится с самого начала. Я хочу иметь возможность снова запустить видео с места поиска.

1 Ответ

0 голосов
/ 10 ноября 2018
<!DOCTYPE html>
<html>
<head>
<scriptm src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
</head>
<body>
  <div id="player"></div>
<div>
  <button id="btnSeek" data-seek="30.7">Seek 30</button>
  <button id="btnSeek" data-seek="60">Seek 60</button>
  <button id="btnSeek" data-seek="90">Seek 90</button>
  <button id="btnSeek" data-seek="180">Seek 180</button>
</div>

<script>
$.getScript('//www.youtube.com/iframe_api');
 var player;
 function onYouTubePlayerAPIReady() {
     player = new YT.Player('player', {
       height: '390',
       width: '640',
       videoId: '-HjpL-Ns6_A',
         playerVars: { 'start': 159, 'autoplay': 1, 'controls': 1, 'showinfo': 0, 'rel': 0 },
       events: {
         'onReady': onPlayerReady,
         'onStateChange': onPlayerStateChange,
       } 
     });         
 }
 var done = false;
 function onPlayerStateChange(evt) 
 {
  if (event.data == YT.PlayerState.PLAYING && !done) {
      setTimeout(stopVideo, 6000);
      done = true;
    }
 }
 function onPlayerReady(evt) {

    // doesn't work here
    // player.seekTo(30);  

     // lets make ure we have a function
     //alert("typeof(player.SeekTo) = " + typeof(player.seekTo));
 }
 function stopVideo() {
    player.stopVideo();
  }

 $(function() {

$(document).on('click', '#btnSeek', function() {
   if(player.getCurrentTime() == player.getDuration())
   {
     player.playVideo();
   }
    player.seekTo($(this).data('seek'), true);
});
});
</script>
</body>

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