Нажмите на изображение плаката, которое воспроизводится в формате HTML5.

У меня есть видео HTML5 с атрибутом плаката. Я хотел бы как-то настроить его так, чтобы вы могли щелкнуть в любом месте видеоэлемента (область изображения плаката), и он запустит событие воспроизведения и запустит видео? Я чувствую, что это довольно стандартная практика, но я не могу найти способ сделать это без вспышки. Любая помощь будет высоко оценена.

Ответ 1

Это работает для меня Эндрю.

В вашей html-голове добавьте этот маленький кусок js:

var video = document.getElementById('video');
video.addEventListener('click',function(){
    video.play();
},false);

Или просто добавьте атрибут onlick непосредственно в ваш элемент html:

<video src="your_video" width="250" height="50" poster="your_image" onclick="this.play();"/>

Ответ 2

Отправлено здесь, но это относится и к этому потоку.

У меня было бесчисленное множество проблем, но в итоге появилось решение, которое работает.

В основном код ниже добавляет обработчик клика к видео, но игнорирует все клики в нижней части (0,82 произволен, но, похоже, работает на всех размерах).

$("video").click(function(e){

    // handle click if not Firefox (Firefox supports this feature natively)
    if (typeof InstallTrigger === 'undefined') {

        // get click position 
        var clickY = (e.pageY - $(this).offset().top);
        var height = parseFloat( $(this).height() );

        // avoids interference with controls
        if (clickY > 0.82*height) return;

        // toggles play / pause
        this.paused ? this.play() : this.pause();
    }
});

Ответ 3

Использование атрибута poster не влияет на поведение. Он просто показывает это изображение при загрузке видео. Если видео автоматически запустится (если реализация браузера не делает этого), вам нужно сделать что-то вроде:

<video id="video" ...></video>

в javascript с помощью jquery:

$('#video').click(function(){
   document.getElementById('video').play();
});

Надеюсь, что это поможет

Ответ 4

Да, это звучит как обычная функция, созданная разработчиками браузеров или разработчиками html, просто "забытыми".

Я написал пару решений, но ни один из них не является действительно перекрестным браузером или на 100% твердым. Включение проблем с нажатием на элемент управления видео имеет непреднамеренные последствия остановки видео. Вместо этого я бы рекомендовал использовать проверенное решение, такое как VideoJS: http://videojs.com/

Ответ 5

Использование get (0) также работает

    var play = $('.playbutton');
    var video = $('#video');
    play.click(function(){
        video.get(0).play();
    })

Ответ 6

<script type="text/javascript">
    function actualNextSibling(el) {    // needed to smooth out default firefox/IE behavior
        do { el = el.nextSibling } while (el && el.nodeType !== 1);
            return el;
    }
</script>
<div onclick="actualNextSibling(this).style.display='block'; this.style.display='none'">
    <img src="splash.jpg" alt="splash" style="cursor: pointer" />
</div>
<div style="display: none">
    <iframe width="440" height="248" src="//www.youtube.com/embed/9FOZEbEpyA8?rel=0&autoplay=1"frameborder="0" allowfullscreen></iframe>
</div>