Может ли кто-нибудь предоставить пример работы vimeo simple api (используя стандартный объект embed, а не froogaloop)? - PullRequest
2 голосов
/ 01 ноября 2011

Документы Vimeo довольно плохие.Я не могу получить простое событие готовности API.Я изучил документы, но их не ясно.Я выложил в форумах, но ответы не ясны.Если я использую обычный тег встраивания (в этом случае я должен это сделать), он должен автоматически запустить событие ready и прослушать функцию vimeo_player_loaded () по умолчанию.Это не так.Или, по крайней мере, похоже, что это не так.

О событии готовности документы четко указывают:

"Запускается автоматически, когда игрок готов принимать команды. Не пытайтесьдобавьте прослушиватели или вызовите функции до получения этого события. При использовании Flash Embed Code проигрыватель попытается вызвать vimeo_player_loaded (). "

Итак ????

И, кстати,мой код (видео правильно вставлено, но готовый обратный вызов не выполняется):

<script>
function vimeo_player_loaded(id){
//doesn't log anything because ready event seems to not fire
console.log(document.getElementById(id).api_play);
}
</script>

<object width="320" height="160">
<param name="allowfullscreen" value="true" />
<param name="allowscriptaccess" value="always" />
<param name="flashvars" value="api=1" />
<param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=<?php echo $vimeo_id ?>&amp;server=vimeo.com&amp;show_title=0&amp;show_byline=0&amp;show_portrait=0&amp;color=ffffff&amp;fullscreen=1&amp;autoplay=0&amp;loop=0" />
<embed src="http://vimeo.com/moogaloop.swf?clip_id=<?php echo $vimeo_id ?>&amp;server=vimeo.com&amp;show_title=0&amp;show_byline=0&amp;show_portrait=0&amp;color=ffffff&amp;fullscreen=1&amp;autoplay=0&amp;loop=0" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" FlashVars="api=1" width="320" height="160"></embed>
</object>

Ответы [ 2 ]

4 голосов
/ 01 декабря 2011

Наконец-то сделал. Итак, я хочу поделиться:

<div style="width:320px; height:180px" id="flashbox-30861939"></div>
<script>
     //vimeo_player_loaded gets automatically called my the vimeo player
     //when it is ready
     function vimeo_player_loaded(id){
         //id is automatically passed
         var swfobj = document.getElementById(id);
         swfobj.api_play();//it works!!!
     }

     var swf = swfobject.embedSWF("http://vimeo.com/moogaloop.swf?clip_id=30861939&amp;server=vimeo.com&amp;show_title=0&amp;show_byline=0&amp;show_portrait=0&amp;color=ffffff&amp;fullscreen=1&amp;autoplay=0&amp;loop=0", "flashbox-30861939", "320", "180", "9.0.0","expressInstall.swf", { api:1, player_id:"flashbox-30861939" }, { allowfullscreen:true, allowscriptaccess:'always' });
</script>

Итак, в итоге я использовал swfobject (пожалуйста, включите swfobject.js на странице перед вызовом кода выше ..).

Нужно быть очень осторожным при прохождении правильных идентификаторов. Также обратите внимание на flash vars:

{ api:1, player_id:"flashbox-30861939" }

и к параметрам:

{ allowfullscreen:true, allowscriptaccess:'always' }

Надеюсь, это поможет. Кстати, конечно, не обязательно вызывать swfobject.embedSWF ПОСЛЕ идентификатора. Вы можете сделать это в голове документа, как всегда. Я делаю это там только из-за некоторых требований моего приложения.

1 голос
/ 21 мая 2012

Кроме того, при использовании Moogaloop вместе с JQuery (и я предполагаю, что Mootools), убедитесь, что метод vimeo_video_loaded() находится вне части document.ready() скрипта, иначе он просто не будет вызываться.

...