Вопрос к знатокам JS



  • Есть скрипт который после того как просмотр видео заканчивается автоматически запускает любую нужную функцию

    <script>
    document.getElementById('my_video_1').addEventListener('ended',handler,false);
        function handler(e) {
          alert('Порноролик отыграл!');
        }
    </script>
    

    как сделать чтоб скрипт запустил функцию за 10 секунд до конца видео ?



  • @dilolo said in Вопрос к знатокам JS:

    как сделать чтоб скрипт запустил функцию за 10 секунд до конца видео ?

    Скорее всего ни как. Текущий скрипт прослушивает событие "ended", который отдаёт элемент с id 'my_video_1', скорее всего это плеер



  • @Fox
    Есть другой рабочий скрипт который работает просто не смог его прикрутить к своему плееру на video js

    <html>
    <body>
        <video id="vid" width="320" height="240" controls>
            <source src="1.mp4" type="video/mp4">
            <source src="movie.ogg" type="video/ogg">
            Your browser does not support the video tag.
        </video>
        <script>
            var callOnce = true;
    
            function monitorVideo() {
                if ((vid.duration - vid.currentTime) < 5)
                    if (callOnce) {
                        myFunction();
                        callOnce = false;
                    }
            }
    
            function myFunction() {
                alert('5 seconds');
            }
    
            setInterval(monitorVideo, 100);
        </script>
    </body>
    </html>
    
    


  • Мой плеер

    <!DOCTYPE html>
    <html lang="en" >
    <head>
      <meta charset="UTF-8">
      <title>CodePen - OGZ Video.js Skin</title>
      <link rel='stylesheet' href='https://vjs.zencdn.net/5-unsafe/video-js.css'><link rel="stylesheet" href="./style.css">
    <script src="https://cdnjs.cloudflare.com/ajax/libs/prefixfree/1.0.7/prefixfree.min.js"></script>
    </head>
    <body>
    <div id="instructions">
      <video id="my_video_1" class="video-js vjs-default-skin" width="640px" height="267px"
          controls preload="none" poster='http://video-js.zencoder.com/oceans-clip.jpg'
          data-setup='{ "aspectRatio":"640:267", "playbackRates": [0.5, 0.75, 1, 1.25, 1.5, 1.75, 2] }'>
        <source src="1.mp4" type='video/mp4' />
        <source src="https://vjs.zencdn.net/v/oceans.webm" type='video/webm' />
      </video>
    <!-- partial -->
      <script src='//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js'></script>
    <script src='https://vjs.zencdn.net/5-unsafe/video.js'></script><script  src="./script.js"></script>
    <script>
    document.getElementById('my_video_1').addEventListener('ended',handler,false);
        function handler(e) {
          alert('Порноролик отыграл!');
        }
    </script>
    </body>
    </html>
    
    


  • @dilolo Какое то специфичное порно https://vjs.zencdn.net/v/oceans.webm, для эстетов видимо:D

    Смотрите, в функции выше у плеера с id "vid" есть два свойства "duration" и "currentTime", если в вашем плеере есть эти свойства, то их можно использовать для определения текущего времени воспроизведения (и сколько осталось до конца)



  • @Fox Спасибо большое. Я тоже подумал что проблема в duration. наверно у плеера он по другому )



  • @dilolo said in Вопрос к знатокам JS:

    @Fox Спасибо большое. Я тоже подумал что проблема в duration. наверно у плеера он по другому )

    Вы выведите в консоли id плеера (в вашем примере это будет my_video_1), в открывшихся свойствах смотрите какие методы в нём есть


Log in to reply
 

  • 15
  • 3
  • 9
  • 2
  • 1
  • 3
  • 6
  • 6