2015-07-29 11 views
7

Demo HereTypeError Uncaught: Impossibile leggere la proprietà 'pronto' undefined Vimeo

Ciao, Ho implementato Vimeo Video e funziona benissimo, ma il problema di fronte IAM è quando mai i video si conclude (ADD Listener) Gli eventi sono Non funziona.

nota: onclick dell'immagine iam riproduzione video.

(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); 

Grazie !!

+0

Hai mai trovato una risposta? –

+0

@nueverest: dai un'occhiata alla demo http://codepen.io/syedazam/pen/rVQzpM !! Qualsiasi problema con "" "pronto" di Vimeo non definito "" Il problema è stato risolto. Passare al codice una volta –

risposta

3

ho risolto il problema, ora il messaggio di errore è andato :-) 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

Cosa hai corretto/modificato? Qual'era la fonte del problema? – mix3d

+0

@ mix3d, Ciao, non vedo più il problema nella mia domanda demo, non sono sicuro se vimeo api è stato aggiornato.Se hai qualche demo che hai implementato, plz post darà un'occhiata Grazie! –

+3

Ho finalmente trovato il mio problema ieri, la documentazione non dichiara esplicitamente (per quanto posso dire) che il caricamento iniziale della funzione froogaloop ha bisogno del vero oggetto DOM, non di un oggetto jQuery o persino di un selettore. Il vostro non lo fa, ma molti esempi usano qualcosa come '$ f ($ ('# vimeo -iframe-id ') [0]) ', con il selettore di array apparentemente casuale usato per ottenere l'oggetto DOM grezzo.L'API froogaloop è strana perché usa quindi il' playerId' per le chiamate successive.Progetto scadente e documentazione scadente, in la mia opinione. – mix3d

Problemi correlati