2016-09-12 7 views
1

У меня есть некоторые проблемы с получением текущей длительности, то вызвать функцию только один раз вместо вызова каждые 10 секундполучить текущую длительность facebook видео апи

$.get('/playlistVideos', function(data){ 

    var i = 0; 
    var maxDuration = 100; 
    var id_video; 

    video = JSON.parse(data); 
    nb_video = video.length; 

    $('.fb-video').attr('data-href', video[i].link); 

    window.fbAsyncInit = function() { 
     FB.init({ 
      appId  : 'XXXXXX', 
      xfbml  : true, 
      version : 'v2.5' 
     }); 


     // Get Embedded Video Player API Instance 
     FB.Event.subscribe('xfbml.ready', function(msg) { 

      var my_video_player = msg.instance; 
      my_video_player.play(); 

      var test = my_video_player.subscribe('startedPlaying', function(e) { 

       window.setTimeout(function() { 
         console.log('duration >> '+my_video_player.getCurrentPosition()); 
        }, 
        10000 //check every 30 seconds 
       ) 

      }); 

     }); 
    }; 

    (function(d, s, id){ 
     var js, fjs = d.getElementsByTagName(s)[0]; 
     if (d.getElementById(id)) {return;} 
     js = d.createElement(s); js.id = id; 
     js.src = "//connect.facebook.net/en_US/sdk.js"; 
     fjs.parentNode.insertBefore(js, fjs); 
    }(document, 'script', 'facebook-jssdk')); 

}); 

Моя функция SetTimeout кажется правильным, я не знаю, как я могу исправить мою проблему

ответ

1

Вместо использования setTimeout() вы должны использовать setInterval() повторно вызвать функцию или выполнить фрагмент кода, с фиксированной задержкой по времени между каждым вызовом:

setInterval(fn, miliseconds); 
+0

thx it s work :) – user492642

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