iframe управление видео на ютубе

привет,

Я действительно новичок в javascript и html5 (только начал 3 недели назад), поэтому мои вопросы могут показаться немного глупыми.

Поэтому я хотел бы знать, можно ли остановить видео на YouTube с помощью mouseleave.function...

У меня есть музыка, которая играет на моем веб-сайте, когда я перелистываю свое видео на YouTube, музыка останавливается, я сделал это следующим образом:

$(video).mouseenter(function(){
    audioElement.pause();
});

чем я могу воспроизвести видео на ютубе...

когда я выхожу из видеоплеера, музыка снова звучит, я использую это:

$(video).mouseleave(function(){
    audioElement.play();
});

Но я хотел бы, чтобы видео на YouTube остановилось одновременно, потому что звук видео воспроизводится, пока воспроизводится звук моей фоновой музыки...

$(video).mouseleave(function(){
    audioElement.play(); **Something here to pause the youbevideo**
});

Является ли это возможным? я хотел бы сохранить версию видео на YouTube, потому что я использую fitvids для изменения размера своих видео.

Спасибо

Пьер, извините за мой английский...

Вот решение для меня, РАВИ.

Таким образом, решение состояло в том, чтобы перенести скрипт API YouYube из внешнего js в основной html.

http://users.skynet.be/fc864408/version9.html

    <body>

      <div class="tf_content" id="page4">
        <div class="container">
            <div class="vendor" id="video">
     <div id="player"></div>


           </div>
       </div>
       </div>  




        <!-- The JavaScript -->

      <script>

      var tag = document.createElement('script');
 tag.src = "https://www.youtube.com/iframe_api";
      var firstScriptTag = document.getElementsByTagName('script')[0];
      firstScriptTag.parentNode.insertBefore(tag, firstScriptTag)

      var player;
      function onYouTubeIframeAPIReady() {
        player = new YT.Player('player', {
          height: '420',
          width: '640',
          videoId: 'lVQzIwpClXA?theme=light&color=white&autohide=0&autoplay=0&showinfo=0&rel=1&controls=1;',
          events: {
            'onReady': onPlayerReady,
            'onStateChange': onPlayerStateChange
          }
        });
      }
      function onPlayerReady(event) {

      } 
        var done = false;
      function onPlayerStateChange(event) {
        if (event.data == YT.PlayerState.PLAYING ) {
    audioElement.volume=0;
          done = true;
        }
      }


     video = document.getElementById("video");




            $(video).mouseleave(function(){
                   player.stopVideo()
                up();   
                });



 $(".container").fitVids();

теперь это работает... размер видео изменяется в соответствии с окном.


person Pierre Debroux    schedule 05.04.2013    source источник
comment
Вы на самом деле используете API или просто встраиваете iframe? Если вы используете API, см. документацию: developers.google.com/youtube/   -  person Cal McLean    schedule 06.04.2013
comment
Я использую iframe, потому что хочу использовать плагин fitvids, я пробовал с версией API и достиг своей цели, чтобы приостановить видео, но плагин fitvids больше не работал.   -  person Pierre Debroux    schedule 06.04.2013
comment
Почему бы не использовать API iFrame следующим образом: developers.google.com/youtube/ затем в функцию onPlayerReady добавьте строку: $('#player').fitVids(), чтобы вы могли сохранить контроль над элементом player? Как у вас сейчас, вы не можете получить доступ к элементу игрока.   -  person Cal McLean    schedule 06.04.2013
comment
спасибо сейчас попробую....   -  person Pierre Debroux    schedule 06.04.2013
comment
я пытался, это не сработало, возможно, из-за меня ... :) я отредактирую свои вопросы, чтобы показать, что я сделал ...   -  person Pierre Debroux    schedule 06.04.2013
comment
я думаю, поскольку я объявляю переменную var player = new YT.Player('video2'.... я мог бы сделать: player.fitVids()? Я перепробовал так много возможностей;)   -  person Pierre Debroux    schedule 06.04.2013
comment
Вы могли бы, но я бы не ожидал, что это сработает - «плеер» является экземпляром внутреннего класса API YouTube.   -  person Cal McLean    schedule 06.04.2013
comment
Спасибо за ваши предложения, Каллум, я сейчас посплю и попробую завтра...   -  person Pierre Debroux    schedule 06.04.2013
comment
спасибо за ваши ответы, я только что написал код API в теле своей страницы, и теперь он работает .... я не знаю, почему он не работает с моим внешним файлом .js.   -  person Pierre Debroux    schedule 06.04.2013


Ответы (1)


Просто используйте (VideoElementID).play() и (VideoElementID).pause() для воспроизведения/приостановки видео по событиям мыши. Вам не нужно отдельно воспроизводить/приостанавливать аудио и видео.

С уважением, Рави

person Ravi Trivedi    schedule 05.04.2013
comment
Привет, Рави, спасибо за ответ, но я не могу использовать (VideoElementID).play() или pause() для видео на YouTube. - person Pierre Debroux; 06.04.2013
comment
вот ссылка на сайт :: users.skynet.be/fc864408/version5.html Просто прокрутите один раз, чтобы оказаться в нужном месте. Благодарность - person Pierre Debroux; 06.04.2013
comment
Вы не можете получить идентификатор элемента видео, а затем использовать функцию воспроизведения/паузы JQuery или Javascript? Это твоя проблема? - person Ravi Trivedi; 06.04.2013
comment
у меня может быть идентификатор видеоэлемента, я просто не могу приостановить видео ‹iframe› на YouTube. Я могу сделать это, когда использую версию API, но не могу вызвать jquery fitvids. более простым решением было бы: использовать API, а затем вызывать плагин fitvid, но он не работает. Спасибо за внимание... Пьер - person Pierre Debroux; 06.04.2013
comment
Просто вставьте enableJSAPI (developers.google.com/youtube/js_api_reference) в свое видео на YouTube, а затем используйте функцию воспроизведения/паузы. - person Ravi Trivedi; 06.04.2013
comment
спасибо, Рави, я только что написал код API в теле своей страницы, и теперь он работает .... я не знаю, почему он не работает с моим внешним файлом .js. - person Pierre Debroux; 06.04.2013
comment
это в вопросах ... я думаю, функция плагина jquery была выполнена до загрузки API youbeplayer и не изменила размер. - person Pierre Debroux; 07.04.2013
comment
Да, ты прав. Теперь Jquery.fitvids выполняется в конце после того, как все загружено и готово к работе. - person Ravi Trivedi; 08.04.2013
comment
И еще одна причина заключается в том, что некоторые из ваших javascript не имеют функции, которая выполняется в момент загрузки html-страницы, которая не ожидает выполнения какого-либо другого кода. - person Ravi Trivedi; 08.04.2013