2012-01-15 2 views
14

Можно ли предварительно загрузить html-видео? Примечание. Тег создается динамически позже.html5 video preload

В настоящее время я могу сделать это с изображениями, создав скрытый div и разместив все изображения там. Затем, когда я создаю необходимость позже, изображение не нужно перезагружать.

Когда это делается с помощью тега видео, браузер по-прежнему загружает видео с самого начала, когда элемент создан.

Я видел это: https://github.com/jussi-kalliokoski/html5Preloader.js, но он не работает с видео. Любые идеи были бы хорошы!

+0

Как насчет 'preload =" auto "' атрибута? – dfsq

+0

Возможно, вы захотите посмотреть здесь: http://stackoverflow.com/questions/476679/preloading-images-with-jquery –

+0

Бретт, речь идет о видео, а не о изображениях. –

ответ

3

Попробуйте это:

<!DOCTYPE html> 
<html> 
<body> 

<video width="320" height="240" controls="controls" **preload="auto"**> 
    <source src="movie.mp4" type="video/mp4" /> 
    <source src="movie.ogg" type="video/ogg" /> 
    <source src="movie.webM" type="video/webM" /> 
    Your browser does not support the video tag. 
</video> 

</body> 
</html> 

Примечание: Это не работает на IE;), для этого вы можете использовать некоторые игрок (просто включение .js). У них есть fallbak вспышки для использования IE JW Player & JW Player Preload

Njoy !!!

0

У меня была аналогичная проблема в IE, некоторые из видео не дисплей: нет, и когда я показываю им IE не показывает первый кадр ...

Я использовал следующий код, чтобы решить, когда я показываю скрытые видео, которые я называю preloadAllVisible()

var preloadAllVisible = function() { 
    $("video:visible").each(preload); 
} 
var preload = function(key, vid) { 
    vid.play(); 
    setTimeout("pausevid("+key+")",100); 
} 

var pausevid = function(key) { 
    vid =$("video:visible")[key]; 
    vid.pause(); 
    vid.currentTime = 0; 
}