- PVSM.RU - https://www.pvsm.ru -

Полноэкранное зацикленное слайд-шоу из изображений и видеофайлов на JavaScript

Недавно я подумал о том, что было бы неплохо сконвертировать кучу имеющихся у меня GIF-файлов в формат MP4 ради экономии места на картах памяти. Мне хотелось сделать так, чтобы полученные видеофайлы можно было бы смотреть в зацикленном виде. QuickLook на Mac, что весьма печально, этого не умеет.

Полноэкранное зацикленное слайд-шоу из изображений и видеофайлов на JavaScript - 1


Слайд-шоу

Поэтому я взялся за решение моей задачи собственными силами и быстро создал небольшой проект [1] на чистом JavaScript, который дал мне то, что нужно. Здесь [2] с ним можно поэкспериментировать. А вот [3] — видео, демонстрирующее его в деле.

Возможности

Среди возможностей моего JavaScript-проекта для организации зацикленных слайд-шоу хочу отметить следующие:

  • Вывод любых видеофайлов и изображений из заданной папки в максимально возможном размере без обрезки.
  • Поддержка управления с помощью мыши или клавиатуры. (Клавиши-стрелки «Влево» и «Вправо» позволяют вручную перемещаться по материалам, клавиша «Пробел» включает и выключает автоматический показ слайдов.)
  • Возможность вывода материалов в режиме слайд-шоу с переключением на новый файл каждые X секунд.
  • При показе материалов в режиме слайд-шоу программа учитывает время, необходимое для загрузки изображения или для подготовки видео к просмотру.
  • Программа хранит сведения о текущей позиции в просматриваемом слайд-шоу. При повторной загрузке страницы просмотр продолжится там, где он завершился в прошлый раз.

Использование проекта и его настройки

Для того чтобы воспользоваться слайд-шоу на HTML-странице, программе надо предоставить контейнер, в котором она будет создавать свои элементы, и задать её параметры, установив значения свойств объекта slideshow. Вот эти свойства:

  • container: ссылка на HTML-элемент в DOM, в котором должно размещаться слайд-шоу.
  • media: массив с именами видеофайлов и изображений, которые нужно выводить.
  • folder: папка, содержащая вышеупомянутые материалы, которая должна быть поддиректорией той папки, в которой содержатся файлы, реализующие функционал слайд-шоу.
  • autoplay: свойство, указывающее на то, должно ли воспроизведение слайд-шоу включаться автоматически. Оно может содержать одно из двух значений: yes (автовоспроизведение включено) или no (автовоспроизведение отключено).
  • speed: время в миллисекундах, которое программа выдерживает до перехода к показу следующего материала (например, значение 1000 означает 1 секунду).

<div id="slideshow-container"></div>
<script>
  let slideshow = {
    container: '#slideshow-container',
    media: [
    'ball.mp4','dinowalk.mp4','dirty.mp4',
    'goldiejump.mp4','step.mp4','tippy.mp4','wag.mp4'
    ],
    folder: 'imgs/',
    autoplay: 'yes'
  }
</script>
<script src="slideshow.js"></script>

Автоматическая работа с коллекциями медиафайлов

В настоящее время я пользуюсь этим проектом на локальном сервере, применяя скрипт index.php. У того, кто работает на Mac, PHP уже установлен. Поэтому для запуска проекта достаточно открыть терминал, перейти в папку с материалами проекта и выполнить следующую команду:

$ php -S localhost:8000

Затем, воспользовавшись браузером, можно перейти по адресу localhost:8000, а всё остальное программа сделает сама.

В частности, скрипт index.php найдёт все папки, находящиеся в той же директории, в которой находится скрипт, и выдаст их список. Если щёлкнуть по имени одной из папок — начнётся воспроизведение файлов из неё. Вы вполне можете посмотреть код этого скрипта, но сразу скажу, что ничего особенного в нём нет.

Код index.php можно найти в репозитории [1] проекта. Для того чтобы приступить к показу собственных слайд-шоу — можно клонировать репозиторий или скачать [4] его в виде ZIP-архива.

А как вы решили бы задачу показа зацикленных слайд-шоу?

Полноэкранное зацикленное слайд-шоу из изображений и видеофайлов на JavaScript - 2 [5]

Автор: ru_vds

Источник [6]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/javascript/362284

Ссылки в тексте:

[1] проект: https://github.com/codepo8/slide-show

[2] Здесь: https://codepo8.github.io/slide-show/slideshow.html

[3] вот: https://youtu.be/VjsKGolzTFo

[4] скачать: https://github.com/codepo8/slide-show/archive/main.zip

[5] Image: http://ruvds.com/ru-rub?utm_source=habr&utm_medium=article&utm_campaign=ru_vds&utm_content=polnoekrannoye#order

[6] Источник: https://habr.com/ru/post/546042/?utm_source=habrahabr&utm_medium=rss&utm_campaign=546042