Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Воспроизвести видео html 5 при помощи jquery (https://javascript.ru/forum/misc/82970-vosproizvesti-video-html-5-pri-pomoshhi-jquery.html)

StartGames 18.08.2021 11:19

Воспроизвести видео html 5 при помощи jquery
 
Есть код:

<div class="owl-item active">
<div class="scrollflow -slide-top s22">
    <div class="video_block video_block3 ani2">
         <video id="video_slays140" width="100%" preload="metadata" class="scrollflow -slide-top -opacity" loop playsinline>
              <source src="https://kulibinstudio.com/image/catalog/video/Mob/video0002.mp4" type="video/mp4;codecs=&quot;avc1.42E01E, mp4a.40.2&quot;">
          </video>         
    </div>
</div>
</div>



let block_show140 = null;
let video140 = $("#video_slays140");
 
$(window).scroll(function(){
  scro_play140();
});

function scro_play140() {
  let wt = $(window).scrollTop();
  let wh = $(window).height();
  let et140 = $('#video_slays140').offset().top;
  let eh140 = $('#video_slays140').outerHeight();
 
  if (wt + wh >= et140 && wt + wh - eh140 * 2 <= et140 + (wh - eh140)){
    if (block_show140 == null || block_show140 == false) {
      video140.pause();
    }
    block_show140 = true;
  } else {
    if (block_show140 == null || block_show140 == true) {
      video140.play();
    }
    block_show140 = false;
  }
}



его суть: при прокрутке к элементу происходит событие. все отлично работает.

проблема: но видео не запускается. консоль гугла пишет: Uncaught TypeError: video140.play is not a function

скрин: http://joxi.ru/52apWXWUgBnqQm

рони 18.08.2021 11:52

StartGames,
video140 у вас это объект jquery, у этого объекта нет никаких play.
вам нужен сам элемент, в объекте он хранится под индексом ноль.
video140.pause();
video140[0].pause();

video140.play();
video140[0].play();

StartGames 18.08.2021 13:19

спасибо, вы совершенно правы)

StartGames 18.08.2021 14:26

спасибо еще раз, но не подскажите как включить или отключить звук?

пробовал так:
video140[0].unmuted();

и так:
video140[0].muted();

не помогает.

рони 18.08.2021 14:31

StartGames,
video140[0].muted = false;
 video140[0].muted = true;

StartGames 18.08.2021 14:37

ого как все просто то))

Но к сожалению после такого получил ошибки: http://joxi.ru/bmoKyRyH7k5PYm

(index):4091 Uncaught (in promise) DOMException: play() failed because the user didn't interact with the document first. https://goo.gl/xX8pDD

рони 18.08.2021 14:41

StartGames,
при отсутствии на странице живого юзера играть ничего не будет!!!

StartGames 18.08.2021 14:42

Цитата:

Сообщение от рони (Сообщение 539479)
StartGames,
при отсутствии на странице живого юзера играть ничего не будет!!!

а как понять "живого юзера?" Я вроде еще живой))

рони 18.08.2021 14:48

StartGames,
автоматом звук и видио запрещены, пока по странице не кликнут или ещё как-то произведут событие на странице руками, а не скриптом.

рони 18.08.2021 16:13

StartGames,
SuperZen, про play


Часовой пояс GMT +3, время: 18:40.