2015-07-29 2 views
7

Demo HereUncaught TypeError: Не удается прочитать свойство «готово» неопределенной Vimeo

Привет, Я Реализован Vimeo видео, и это прекрасно работает, но выпуск РМКО облицовкой, когда все видео заканчивается (Добавить Слушатель) События являются Не работает.

примечание: onclick изображения iam, воспроизводящее видео.

(function($) { 
$(function() { 
    //alert('hi') 
    //var thumbSelector = $('.gwt__embed__video .flex-viewport, .sliderNew #carousel, .sliderNew .flex-direction-nav'); 
    //var dotSelector = $('.gwt__embed__video .flex-viewport, .flex-control-nav.flex-control-paging, .flex-direction-nav, flex-control-nav'); 
    //var slidFalse = $('.sliderNew .flexslider').flexslider({ slideshow: false }); 
    //var slidTrue = $('.sliderNew .flexslider').flexslider({ slideshow: true }); 
    var iframe = $('#player1')[0]; 
    var player = $f(iframe); 
    var status = $('.status'); 

    console.log("01 player" + player); // result null 
    // When the player is ready, add listeners for pause, finish, and playProgress 
    // Call the API when a button is pressed  
    $('#test_1').on('click', function() { 
     $('#test_1').hide(); 
     imgClick1(); 
     //$('#player1').show(); 
     //$('.gwt__video__wrap .close').show(); 
     // player.api($(this).text().toLowerCase()); 
     console.log("02 on click player" + player); // 
    }); 
    function imgClick1() { 

     var tag1 = document.createElement('script'); 
     tag1.src = "http://a.vimeocdn.com/js/froogaloop2.min.js"; 
     var firstScriptTag1 = document.getElementsByTagName('script')[0]; 
     firstScriptTag1.parentNode.insertBefore(tag1, firstScriptTag1); 


     var ifrm = document.createElement("IFRAME"); 
     ifrm.setAttribute("src", "https://player.vimeo.com/video/76979871?api=1&player_id=player1&autoplay=1"); 
     ifrm.setAttribute("id", "vplayer"); 
     ifrm.setAttribute("class", "vimeo-player"); 
     ifrm.style.width = "100%"; 
     ifrm.style.height = "224px"; 
     // add rest of your values 
     ifrm.frameborder = 0; 
     document.getElementById("vPlayer").appendChild(ifrm); 

     jQuery('iframe#vplayer').each(function(){ 
     alert('eaci............') 
     $f(this).addEvent('ready', ready); 
     }); 

     function ready(player_id){ 
      $f(player_id).addEvent('play', play); 
      $f(player_id).api('play'); 
      alert("Ready!!!"); 
     } 
     function play(){ 
      alert("Playing!!!"); 
     } 


     $('#vPlayer iframe').load(function() { 
      alert('On Load Function.') 
      //player = document.querySelectorAll('iframe')[0]; 
      console.log("neeeeeeeeeeee" + player); 
      // $('#vPlayer iframe').attr('id', videoData[0]['id']); 
      /* $f(player).addEvent('ready', function(id){ 
       var vimeoVideo = $f(id); 
       console.log('success'); 
      }); */ 
      function videoEnd() { 
       alert('hello mister') 
      } 
     }); 
    } 

    function onPause(id) { 
     status.text('paused'); 
    } 

    function onFinish(id) { 
     alert("eeee"); 
    } 

    function onPlayProgress(data, id) { 
     status.text(data.seconds + 's played'); 
    } 



}); 

})(jQuery); 

Спасибо!

+0

ли вы когда-нибудь найти ответ? –

+0

@nueverest: посмотрите демо-версию http://codepen.io/syedazam/pen/rVQzpM !! Любой, как «" «готов» к неопределенному Vimeo »« Проблема исправлена. Пожалуйста, пройдите код один раз –

ответ

3

Я Исправлена ​​проблема, теперь сообщение об ошибке Унесенные :-) here is the Demo

$(function(){ 
    /************ 
    Img Click Load Vimeo Video **********************************************/ 
    window.artist_vimeo_id = $(this).attr('1450411820675');  
    $('#test_1').on('click', function(e) { 
    alert('img clicked'); 
    $(this).each(function(i, obj) { 
     e.preventDefault(); 
     window.artist_vimeo_id = $(this).attr('data-vimeo'); 
     iframeVimeo(); 
    }); 
    vimeoLoad();     
    });   

    function getVimeoArtistId() { 
    return window.artist_vimeo_id; 
    } 
    function loadScriptVimeo() { 
    //if (typeof(YT) == 'undefined' || typeof(YT.Player) == 'undefined') { 
     var tag = document.createElement('script'); 
     tag.src = "https://f.vimeocdn.com/js/froogaloop2.min.js"; 
     var firstScriptTag = document.getElementsByTagName('script')[0]; 
     firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); 
    //} 
    } 
    function iframeVimeo() { 
    var ifrm = document.createElement("IFRAME"); 
    var ifrmUrl = "https://player.vimeo.com/video/"; 
    ifrm.setAttribute("src", "https://player.vimeo.com/video/76979871?api=1&player_id=player1&autoplay=1"); 
    ifrm.setAttribute("class", "vimeo"); 
    ifrm.setAttribute("id", "player1"); 
    ifrm.style.width = "100%"; 
    ifrm.style.height = "100%"; 
    ifrm.frameborder = 0; 
    $(".gwt__embed__video").append(ifrm); 
    return false;  
    } 
    function vimeoLoad() { 
    jQuery('iframe.vimeo').each(function(){ 
     Froogaloop(this).addEvent('ready', ready); 
    }); 
    function ready(playerID){ 
     Froogaloop(playerID).addEvent('play', play(playerID)); 
     Froogaloop(playerID).addEvent('finish', finish); 
     Froogaloop(playerID).api('play'); 
    } 
    function play(playerID){ 
    } 
    function finish(){ 
     $('#player1').remove(); 
    } 
    } 





    /*********************/ 


     $('.test-click').on('click',function(){ 
     alert('Initialized'); 
     }) 
    }) 
+2

Что вы исправили/изменили? Каков был источник проблемы? – mix3d

+0

@ mix3d, Привет, я больше не вижу выпуск в моей демо-версии вопроса, не уверен, обновлен ли vimeo api. Если у вас есть какие-то демо, которые вы внедрили, сообщение plz будет выглядеть. Спасибо! –

+3

Я, наконец, нашел свою проблему вчера: в документации явно не указано (насколько я могу сказать), что для начальной загрузки функции froogaloop нужен фактический объект DOM, а не объект jquery или даже селектор. У вас нет, но во многих примерах используется нечто вроде '$ f ($ ('# vimeo -iframe-id ') [0]) ', с помощью, по-видимому, случайного селектора массивов, используемого для получения необработанного объекта DOM. API-интерфейс froogaloop странный, потому что затем он использует' playerId' для последующих вызовов. Плохая конструкция и более плохая документация, в мое мнение. – mix3d

Смежные вопросы