2016-08-17 4 views
8

Я вставляю видео в реальном времени на свою веб-страницу и должен размещать обработчики событий на видео. Например, я хотел бы узнать, приостановлено ли видео.Как получить видеоролик в реальном времени Facebook без xfbml.ready?

С обычными видеороликами (неживыми), я могу сделать это, подписавшись на события, используя метод, описанный в документации по Facebook. Вот документы: https://developers.facebook.com/docs/plugins/embedded-video-player/api и мой пример кода:

FB.Event.subscribe('xfbml.ready', function (msg) { 
    if (msg.type === 'video') { 
    fplayer = msg.instance; 
    fplayer.subscribe('paused', facebookPauseEventHandler); 
    } 
}); 

Проблема заключается в том, при встраивании видео в реальном времени, а не на «по требованию» или предварительно записанного видео, которое имеет конец, xfbml.ready события никогда не стреляет. Это вредно, потому что вам нужен ответ, в данном случае «msg», чтобы подписаться на события Facebook.

Я попытался использовать 'xfmbl.rendered' вместо этого, но msg, полученный при запуске события, равен '1'.

Я также попытался разместить обработчики событий на событиях, проводимых самим игроком, вместо использования msg.instance, но это невозможно из-за проблем с перекрестными проблемами (игрок Facebook находится внутри iFrame).

Этот пост =>Unmute facebook live video также задает аналогичный вопрос, относящийся к xfbml.ready, а не к стрельбе.

Благодарим за помощь.

+0

Теперь это фиксируется я думаю, по крайней мере, он работает так, как он должен: http://shoepimper.com/fb.html –

ответ

0

FB.Event.subscribe('xfbml.ready'... вызывается FB.XFBML.parse, вы можете заставить новую разобраны до мероприятия, анализ только на ваших встраивать видео из родителей, например:

FB.XFBML.parse(document.getElementById('my-embed-video-id').parentNode); 
FB.Event.subscribe('xfbml.ready', function(msg) { 
    if(msg.type === 'video'){ 
    //do something 
    } 
}); 
Смежные вопросы