Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 18.08.2021, 11:19
Кандидат Javascript-наук
Отправить личное сообщение для StartGames Посмотреть профиль Найти все сообщения от StartGames
 
Регистрация: 13.06.2014
Сообщений: 143

Воспроизвести видео 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

Последний раз редактировалось StartGames, 18.08.2021 в 11:30.
Ответить с цитированием
  #2 (permalink)  
Старый 18.08.2021, 11:52
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,134

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

video140.play();
video140[0].play();
Ответить с цитированием
  #3 (permalink)  
Старый 18.08.2021, 13:19
Кандидат Javascript-наук
Отправить личное сообщение для StartGames Посмотреть профиль Найти все сообщения от StartGames
 
Регистрация: 13.06.2014
Сообщений: 143

спасибо, вы совершенно правы)
Ответить с цитированием
  #4 (permalink)  
Старый 18.08.2021, 14:26
Кандидат Javascript-наук
Отправить личное сообщение для StartGames Посмотреть профиль Найти все сообщения от StartGames
 
Регистрация: 13.06.2014
Сообщений: 143

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

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

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

не помогает.
Ответить с цитированием
  #5 (permalink)  
Старый 18.08.2021, 14:31
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,134

StartGames,
video140[0].muted = false;
 video140[0].muted = true;
Ответить с цитированием
  #6 (permalink)  
Старый 18.08.2021, 14:37
Кандидат Javascript-наук
Отправить личное сообщение для StartGames Посмотреть профиль Найти все сообщения от StartGames
 
Регистрация: 13.06.2014
Сообщений: 143

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

Но к сожалению после такого получил ошибки: 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
Ответить с цитированием
  #7 (permalink)  
Старый 18.08.2021, 14:41
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,134

StartGames,
при отсутствии на странице живого юзера играть ничего не будет!!!
Ответить с цитированием
  #8 (permalink)  
Старый 18.08.2021, 14:42
Кандидат Javascript-наук
Отправить личное сообщение для StartGames Посмотреть профиль Найти все сообщения от StartGames
 
Регистрация: 13.06.2014
Сообщений: 143

Сообщение от рони Посмотреть сообщение
StartGames,
при отсутствии на странице живого юзера играть ничего не будет!!!
а как понять "живого юзера?" Я вроде еще живой))
Ответить с цитированием
  #9 (permalink)  
Старый 18.08.2021, 14:48
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,134

StartGames,
автоматом звук и видио запрещены, пока по странице не кликнут или ещё как-то произведут событие на странице руками, а не скриптом.
Ответить с цитированием
  #10 (permalink)  
Старый 18.08.2021, 16:13
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,134

StartGames,
SuperZen, про play
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
при выводе html кода через jquery все криво Satell Общие вопросы Javascript 0 19.03.2016 18:07
Jquery Скрыть/Показать блок при наведении tot_kotoryi Ваши сайты и скрипты 1 08.02.2016 23:15
Звук при смене html ryabov Общие вопросы Javascript 3 29.09.2015 22:08
Масштабирование при помощи javascript mooni Элементы интерфейса 2 17.06.2013 17:51
Загрузка браузером новой страницы при событии. JQUERY AlexM jQuery 1 15.10.2012 11:10