Start/play embedded (iframe) youtube-video при щелчке изображения
Я пытаюсь начать воспроизведение встроенного видео youtube, щелкнув изображение. Идея состоит в том, чтобы иметь изображение поверх видео, а при щелчке изображения оно исчезает и начинает воспроизведение видео.
Я использую jquery, чтобы угаснуть изображение, и надеялся найти способ играть или щелкнуть видео, используя jquery.
Затухание работает нормально, но я не могу понять, как запускать видео для воспроизведения.
Я получил его для работы в нескольких браузерах, установив видео для автовоспроизведения и спрятав его, а затем исчез в видео при щелчке изображения. В большинстве браузеров видео будет автоматически запускаться, когда он исчезнет, но в хроме он начал автовоспроизведение, даже когда он был скрыт. В iOS это тоже не сработало.
Поскольку я довольно новичок в этом, я даже не уверен, что пишу это на 100% правильно, но я пробовал что-то вроде этого без успеха:
$('#IMAGE').click(function() { $('#VIDEO').play(); });
Итак, как я могу сделать видеозапись на клике?
Есть ли способ воспроизвести видео при щелчке изображения, просто используя jquery?
Спасибо заранее.
Ответы
Ответ 1
Быстрый и грязный способ - просто поменять iframe
на autoplay=1
с помощью autoplay=1
с помощью jQuery.
HTML
Заполнитель:
<div id="videoContainer">
<iframe width="450" height="283" src="https://www.youtube.com/embed/VIDEO_ID_HERE?wmode=transparent" frameborder="0" allowfullscreen wmode="Opaque"></iframe>
</div>
Ссылка на автозапуск:
<a class="introVid" href="#video">Watch the video</a></p>
ЯВЛЕНИЕ
Ловец onClick
, вызывающий функцию
jQuery('a.introVid').click(function(){
autoPlayVideo('VIDEO_ID_HERE','450','283');
});
Функция
/*--------------------------------
Swap video with autoplay video
---------------------------------*/
function autoPlayVideo(vcode, width, height){
"use strict";
$("#videoContainer").html('<iframe width="'+width+'" height="'+height+'" src="https://www.youtube.com/embed/'+vcode+'?autoplay=1&loop=1&rel=0&wmode=transparent" frameborder="0" allowfullscreen wmode="Opaque"></iframe>');
}
Ответ 2
Вы можете сделать это просто так:
$('#image_id').click(function() {
$("#some_id iframe").attr('src', $("#some_id iframe", parent).attr('src') + '?autoplay=1');
});
где image_id - ваш идентификатор изображения, который вы нажимаете, и some_id - это идентификатор div, в котором iframe также вы можете напрямую использовать идентификатор iframe.
Ответ 3
Чтобы начать видео
var videoURL = $('#playerID').prop('src');
videoURL += "&autoplay=1";
$('#playerID').prop('src',videoURL);
Чтобы остановить видео
var videoURL = $('#playerID').prop('src');
videoURL = videoURL.replace("&autoplay=1", "");
$('#playerID').prop('src','');
$('#playerID').prop('src',videoURL);
Вы можете заменить "& autoplay = 1" на "? autoplay = 1", если нет дополнительных параметров
работает как для vimeo, так и для youtube на FF и Chrome
Ответ 4
Предполагается, что вы можете указать домен, безопасный для сценариев. в документе api упоминается
"В качестве дополнительной меры безопасности вы также должны включить параметр происхождения в URL-адрес"
http://code.google.com/apis/youtube/iframe_api_reference.html
src= "http://www.youtube.com/embed/J---aiyznGQ?enablejsapi=1&origin=mydomain.com"
будет src вашего iframe.
однако он не очень хорошо документирован. Я сейчас пытаюсь что-то подобное.
Ответ 5
Код HTML: -
<a href="#" id="playerID">Play</a>
<iframe src="https://www.youtube.com/embed/videoID" class="embed-responsive-item" data-play="0" id="VdoID" ></iframe>
Код Jquery: -
$('#playerID').click(function(){
var videoURL = $('#VdoID').attr('src'),
dataplay = $('#VdoID').attr('data-play');
//for check autoplay
//if not set autoplay=1
if(dataplay == 0 ){
$('#VdoID').attr('src',videoURL+'?autoplay=1');
$('#VdoID').attr('data-play',1);
}
else{
var videoURL = $('#VdoID').attr('src');
videoURL = videoURL.replace("?autoplay=1", "");
$('#VdoID').prop('src','');
$('#VdoID').prop('src',videoURL);
$('#VdoID').attr('data-play',0);
}
});
Thats It!
Ответ 6
Это должно работать отлично, просто скопируйте этот код div
<div onclick="thevid=document.getElementById('thevideo'); thevid.style.display='block'; this.style.display='none'">
<img style="cursor: pointer;" alt="" src="http://oi59.tinypic.com/33trpyo.jpg" />
</div>
<div id="thevideo" style="display: none;">
<embed width="631" height="466" type="application/x-shockwave-flash" src="https://www.youtube.com/v/26EpwxkU5js?version=3&hl=en_US&autoplay=1" allowFullScreen="true" allowscriptaccess="always" allowfullscreen="true" />
</div>
Ответ 7
Пример youtube iframe
<iframe id="video" src="https://www.youtube.com/embed/xNM7jEHgzg4" frameborder="0"></iframe>
Нажмите, чтобы воспроизвести элемент HTML
<div class="videoplay">Play</div>
Код jQuery для воспроизведения видео
$('.videoplay').on('click', function() {
$("#video")[0].src += "?autoplay=1";
});
Благодаря https://codepen.io/martinwolf/pen/dyLAC