Nano Hash - криптовалюты, майнинг, программирование

Запускать видео на YouTube при наведении указателя мыши

Я пытаюсь запустить видео на YouTube при наведении курсора. Он будет приостанавливаться (не останавливаться), когда пользователь наводит курсор на другое видео ...

Я застрял на команде зависания. Может кто-нибудь помочь мне разобраться, пожалуйста?

На странице 16 видео, это рабочий код из jsfiddle, который в качестве примера содержит 3 видео.

http://jsfiddle.net/sebwhite/gpJN4/

ВИДЕО:

<iframe id="player" width="385" height="230" src="http://www.youtube.com/embed/erDxb4IkgjM?rel=0&wmode=Opaque&enablejsapi=1;showinfo=0;controls=0" frameborder="0" allowfullscreen></iframe>

ЯВАСКРИПТ:

function onYouTubeIframeAPIReady() {
 player = new YT.Player('player', {
     events: {
         'onStateChange': onPlayerStateChange
     }
 });

onYouTubeIframeAPIReady();
function onPlayerStateChange(event) {
 if (event.data == YT.PlayerState.PLAYING) {
     player1.pauseVideo();
     player2.pauseVideo();
 }

  • Привет, Себ, попробуйте эту ссылку stackoverflow.com/questions/15398745/ 20.12.2013
  • Привет @Phil, я специально не хочу, чтобы он запускался по щелчку, или я полностью упускаю суть? Мои мозги переутомились из-за этого, и я не знаю, почему не могу этого понять. 20.12.2013
  • Я полагаю, вы могли бы нарисовать прозрачный div поверх видеопроигрывателя и таким образом останавливать клики? 20.12.2013
  • Я не против остановки кликов - я просто хочу воспроизвести видео при наведении указателя мыши, люди могут щелкнуть, чтобы приостановить или дважды щелкнуть, чтобы включить полноэкранный режим, если захотят ... 20.12.2013
  • В этом случае похоже, что ответ Полса ниже делает это? 20.12.2013

Ответы:


1

ОБНОВЛЕННАЯ ФИДДЛ

Попробуй это:

 var $$ = function(tagname) { return document.getElementsByTagName(tagname); }
    
 function onYouTubeIframeAPIReady() {
     var videos = $$('iframe'), // the iframes elements
         players = [], // an array where we stock each videos youtube instances class
         playingID = null; // stock the current playing video
     for (var i = 0; i < videos.length; i++) // for each iframes
     {
         var currentIframeID = videos[i].id; // we get the iframe ID
         players[currentIframeID] = new YT.Player(currentIframeID); // we stock in the array the instance
         // note, the key of each array element will be the iframe ID
         
         videos[i].onmouseover = function(e) { // assigning a callback for this event
             if (playingID !== currentHoveredElement.id) {
               players[playingID].stopVideo();
             }
             var currentHoveredElement = e.target;
             if (playingID) // if a video is currently played
             {
                 players[playingID].pauseVideo();
             }
             players[currentHoveredElement.id].playVideo();
             playingID = currentHoveredElement.id;
         };
     }
    
 }
 onYouTubeIframeAPIReady();

Скрипка:

http://jsfiddle.net/gpJN4/3/

20.12.2013
  • Назовите меня идиотом, но в контексте кода, который у меня уже есть / сценария наличия более одного видео? Извини, просто пытаюсь осмыслить это. 20.12.2013
  • Единственная проблема в том, что видео не останавливаются. Я пытаюсь получить его, чтобы вы могли пролистать видео, и видео, на котором указана ваша мышь, будет воспроизводиться, пока вы не перейдете к другому видео. 21.12.2013
  • Это блестяще. Он работает блестяще, ХОТЯ (и не ненавидьте меня), но я нашел способ, как это не работает. Если вы установите для одного из видео автовоспроизведение, то при наведении курсора на что-то еще воспроизводятся оба. Есть ли способ добавить поддержку для приостановки автовоспроизведения видео? 22.12.2013
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..