2014-01-07 3 views
2

Хорошо, у меня странная проблема, что я надеюсь, что кто-то сможет пролить свет. Этот сайт находится здесь: http://tlt.voltronik.co.uk - Прокрутите вниз до раздела Последние клики/Самые популярные клипы.Воспроизведение видео в формате HTML5 при зависании, вызывающем плакат, чтобы не показывать, отложенное видео

Есть несколько видеороликов, которые, когда завис над, должны играть. Я установил плакат как подходящий кадр видео, чтобы они не всегда использовали первый кадр, поскольку он не всегда является наиболее подходящим. Вот в JS я использую для воспроизведения/паузы при наведении курсора мыши:

var vid = document.getElementsByClassName("video-hover"); 

[].forEach.call(vid, function (item) { 
    item.addEventListener('mouseover', hoverVideo, false); 
    item.addEventListener('mouseout', hideVideo, false); 
}); 

function hoverVideo(e) { 
    this.play(); 
} 

function hideVideo(e) { 
    this.pause(); 
} 

Проблема заключается в том (как вы, возможно, уже открыли для себя), что иногда плакаты показывают, и иногда они не делают. Иногда они все загружаются в обязательном порядке, и иногда ни один из них не делает. Однако большую часть времени, когда они показывают, вы наводите курсор на видео и ничего не происходит. Вам нужно переместить курсор мыши на видео, затем снова наведите курсор на видео для воспроизведения видео.

Я попытался компенсировать, что плакаты не отображаются, установив фоновое изображение плаката, чтобы сидеть за видео, но это, похоже, тоже не отображается должным образом.

Я не думаю, что это связано с фоном rgba или воспроизведением стиля стиля параллакса, потому что это поведение также видно на странице «Timelapse Clips».

Может ли кто-нибудь пролить свет на то, почему это может произойти?

+0

BTW, плакат кадр третьего Самые популярные клипа не существует http://tlt.voltronik.co.uk/wp-content/uploads/2014/01/Sunset5_4K_UltraHD_Timelapse-266x150.jpeg – acoiro

+0

Thanks для этого, исправлено. – Jack

+0

Небольшое обновление об этом - я читал, что png работает над jpeg, даже если размер файла будет намного больше. Я пробовал это, и это не имеет значения. Все, что он делает, это не загрузка изображений плаката, даже если они есть. Я действительно застрял. Любые другие предложения? – Jack

ответ

0

Переместите тег источника mp4 над веб-сайтом.

В первый раз, когда видео занимает какое-то время, потому что оно должно загружаться. Вы можете установить preload = "auto", чтобы избежать этой задержки.

+0

Спасибо, но когда я это делаю, Firefox ухитряется и говорит, что он не может воспроизвести видео. Сначала WebM, указанный в исходном списке, ведет себя все браузеры. Есть какие нибудь идеи как это починить? – Jack

+0

Настройка видео для предварительной загрузки = «авто» устраняет проблему задержки (я думаю ... трудно сказать, где это происходит с такой периодичностью). Тем не менее, проблема с плакатами, которые не показаны иногда, все еще существует. Смотрите скриншот здесь: http://cl.ly/image/2f362p3P3o1K – Jack

+0

У кого-нибудь есть мысли? Смотрите мой скриншот в моем комментарии выше. – Jack

0

У меня была та же проблема, что и у вас. Хотя это не касается проблем с плакатами, оно достигает того, о чем я думаю, на что вы надеетесь. Мне пришлось полностью удалить плакат и добавить изображение с дисплеем: ни один класс, который я добавляю при наведении курсора с помощью jQuery. Вот моя ручка: http://codepen.io/rhenwilson/pen/zIcBC.

var figure = $("figure") 
var vid = $("video"); 
var cover = $(".img-cover") 
$(figure).hover(function() 
     { $(cover).addClass("img-hide"); 
}, function() 
     { $(cover).removeClass("img-hide"); 
} 
); 

[].forEach.call(vid, function (item) { 
     item.addEventListener('mouseover', hoverVideo, false); 
     item.addEventListener('mouseout', hideVideo, false); 
}); 

function hoverVideo(e) { 
     this.play(); 
} 

function hideVideo(e) { 
     this.pause(); 
} 
Смежные вопросы