Пауза Vimeo универсального встраивания при скрытии с помощью jQuery
У меня есть видео Vimeo (через универсальный встроенный iframe), скрытое на моей странице. Нажатие на ссылку приводит к ее исчезновению, а нажатие за пределы видео (в стиле лайтбокса) затемняет и скрывает его, но видео продолжает воспроизводиться. Я читал в API Vimeo, что вы можете использовать объекты JSON для приостановки видео, но я не понимаю, что они говорят.
HTML:
<img id="show_tide" class="vid" src"#">
<i<iframe id="tide" class="vim" src="http://player.vimeo.com/video/1747304?portrait=0&color=ffffffapi=1" width="726" height="409" frameborder="0"></iframe>
JavaScript:
$('#underlay').click(function() {
//pause VISIBLE (there are multiple) Vimeo video via API
$('.vim, #underlay').fadeOut(400);
});
4 ответа
Вам необходимо добавить одну из библиотек froogaloop.
JS
player=$f(document.getElementById('tide'));// you can use jquery too: $('#tide')[0]
player.api('pause');
Досадно просто. Вот пример на jsfiddle.net.
Я хотел добавить кнопку play/pause без использования jquery или froogaloop. Я не знаю почему, но я ненавижу включать библиотеку, когда мне не нужно. Особенно для таких простых вещей, как это.
Вот что я придумал (я просто публикую это для других людей, которые ищут):
<!DOCTYPE HTML>
<html>
<head>
<title>Vimeo Test</title>
<script language="JavaScript">
var iFram, url;
function startitup(){
iFram = document.getElementById('theClip');
url = iFram.src.split('?')[0];
}
function postIt(action, value) {
var data = { method: action };
if (value) {
data.value = value;
}
if(url !== undefined){
iFram.contentWindow.postMessage(JSON.stringify(data), url);
}
}
</script>
</head>
<body onload="startitup();">
<iframe id="theClip" src="http://player.vimeo.com/video/27855315?api=1" width="400" height="225" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen> </iframe>
<p><button onclick="postIt('play');">Play</button> <button onclick="postIt('pause');">Pause</button></p>
</body>
</html>
Вот простой способ приостановить видео Vimeo из внешнего HTML-элемента, который работал для меня, с помощью libog froogaloop:
var iframe = $('.video')[0];
var player = $f(iframe);
$('.button').bind('click', function() {
player.api('pause');
});
Я немного опоздал на вечеринку, но мне пришлось загружать froogaloop, jquery, а также Vimeo API.
не забудьте добавить ?api=1&player_id='frame'
до конца вашей встроенной ссылки на видео
Мой код выглядел примерно так после
<iframe id="frame" src='http://player.vimeo.com/video/199114019?api=1&player_id='frame''></iframe>
$(document).ready(function() {
$('.nameofyourclass').click(function() {
$f($('#frame')[0]).api('pause');
});
});