1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mirrors-mooviejs

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Moovie.js: демонстрация, установка (браузер и NPM), CDN, поддержка субтитров

Демонстрация:

Демонстрацию можно найти по ссылке: https://mooviejs.com/.

Установка (браузер):

  1. Включите исходный код JavaScript.
<script src="path/to/moovie.js"></script>
  1. Включите стили.
<link rel="stylesheet" href="path/to/moovie.css">
  1. Установите HTML.
<video id="example" poster="<<path-to-poster>>">
  <source src="<<path-to-file.mp4>>" type="video/mp4">
  <track kind="captions" label="Portuguese" srclang="pt" src="<<path-to-caption.vtt>>">
  <track kind="captions" label="English" srclang="en" src="<<path-to-caption.vtt>>">
  Ваш браузер не поддерживает тег video.
</video>
  1. Инициализируйте.
document.addEventListener("DOMContentLoaded", function() {
   var demo = new Moovie({
     selector: "#example",
     dimensions: {
          width: "100%"
     }
   });
});

Примечание: не забудьте включить папку «icons».

Установка (NPM):

  1. Установите пакет npm.
npm i mooviejs
  1. Включите стили.
<link rel="stylesheet" href="path/to/moovie.css">
  1. Установите HTML.
<video id="example" poster="<<path-to-poster>>">
  <source src="<<path-to-file.mp4>>" type="video/mp4">
  <track kind="captions" label="Portuguese" srclang="pt" src="<<path-to-caption.vtt>>">
  <track kind="captions" label="English" srclang="en" src="<<path-to-caption.vtt>>">
  Ваш браузер не поддерживает тег video.
</video>
  1. Инициализируйте.
const Moovie = require('mooviejs');
var demo = new Moovie({
     selector: "#example",
     dimensions: {
          width: "100%"
     },
     icons: {
        path: "<path/to/icons/folder>"
     }
});

CDN:

Вы можете использовать наш CDN (предоставленный JSDelivr) для файлов JavaScript и CSS.

// Javascript
<script src="https://cdn.jsdelivr.net/gh/BMSVieira/moovie.js@latest/js/moovie.min.js"></script>

// CSS
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/BMSVieira/moovie.js@latest/css/moovie.min.css">

Субтитры:

В настоящее время поддерживается формат WebVTT (.vtt) и SubRip (.srt). Динамически (требуется публичный сервер)

Используйте стандартный HTML, как в примере ниже (источник должен находиться на публичном сервере с заголовками cross-origin).

<video>
  <track kind="captions" label="<<Язык>>" srclang="<<Исходный язык>>" src="<<путь к caption.vtt/.srt>>">
</video>

Локально (не требуется сервер или загрузка)

Поскольку браузеры не позволяют отображать субтитры, загруженные локально, вы можете использовать встроенную функцию moovie, которая позволяет добавлять локальные субтитры без сервера или какой-либо загрузки.

При загрузке файлов субтитров локально убедитесь, что файл сохранён с кодировкой UTF-8, иначе вы столкнётесь с некоторыми ошибками расшифровки, такими как «�».

Видеоплеер ➔ ⚙️ ➔ Субтитры ➔ Загрузить локально

⚠️ Этот метод НЕ загружает ничего на сервер/папку/каталог.

Регулировка смещения субтитров:

Можно отрегулировать смещение в общей сложности на 10 секунд (-5 / +5) на лету.

Горячие клавиши:

Плеер привяжет следующие сочетания клавиш, когда он будет в фокусе.

Клавиша Описание
SpaceBar Переключить воспроизведение
K Переключить воспроизведение
F Переключиться в полноэкранный режим
C Включить субтитры
M Включить/выключить звук
ArrowRight Прокрутить вперёд на 5 секунд
ArrowLeft Прокрутить назад на 5 секунд
Shift+W Увеличить размер субтитров
Shift+S Уменьшить размер субтитров

API > Методы:

  • togglePlay: Воспроизвести/поставить на паузу видео

    demo.togglePlay();
  • toggleSubtitles: Включить/отключить субтитры

    demo.toggleSubtitles();
  • toggleFullscreen: Включить/отключить полноэкранный режим

    demo.toggleFullscreen();
  • destroy: Удалить текущий плеер и отвязать все его события

    demo.destroy();
  • build: Создать новый плеер

    demo.build();
  • addTrack: Добавить несколько/одиночные субтитры к плееру

Имя Тип По умолчанию Описание
label string New Subtitle Название новых субтитров в поле субтитров
srclang string New Страна назначения
src string --- Путь к файлу [Не может быть пустым]
```javascript
demo.addTrack({
  options : {
        0: {
            label: 'Italian',
            srclang: "it",
            src: "<<path-to-file.vtt/.srt"
        },
        1: {
            label: 'Spanish',
            srclang: "es",
            src: "<<path-to-file.vtt/.srt"
        }
    },
    onComplete: function(){
      console.log("Completed!");
    } 
});
```
  • change: Применить изменения к текущему плееру.
Имя Тип Описание
video > videoSrc string Новый источник видео
video > posterSrc string Новый источник постера
captions > clearCaptions boolean Удалить все доступные субтитры в меню
```javascript
demo.change({
     video: {
         videoSrc: "<<path-to-video>>",
         posterSrc: "<<path-to-poster>>"
     },
     captions:{
         clearCaptions: true
     },
     onComplete: function(){
         console.log("Completed!");
     } 
});
```

API > Gets:

  • 
    

// Возвращает элемент DOM плеера demo.playerElement

// Возвращает логическое значение, указывающее, воспроизводится ли текущий плеер. demo.playing

// Возвращает логическое значение, указывающее, приостановлен ли текущий плеер. demo.paused

// Возвращает логическое значение, указывающее, остановлен ли текущий проигрыватель. demo.stopped

// Возвращает логическое значение, указывающее, закончил ли текущий игрок воспроизведение. demo.ended

// Возвращает currentTime игрока. demo.currentTime

// Возвращает продолжительность текущего медиа. demo.duration

// Возвращает логическое значение, указывающее, ищет ли текущий игрок. demo.seeking

// Возвращает громкость плеера. demo.volume

// Возвращает логическое значение, указывающее, приглушён ли текущий плеер. demo.muted

// Возвращает текущую скорость воспроизведения demo.speed

// Возвращает минимальную разрешённую скорость demo.minimumSpeed

// Возвращает максимальную разрешённую скорость demo.maximumSpeed

// Возвращает минимальное допустимое смещение субтитров demo.minimumOffset

demo.maximumOffset

**// Возвращает текущее смещение заголовка** 
demo.captionOffset

**// Возвращает текущий источник проигрывателя**
demo.source
  • API > Наборы:
// Устанавливает currentTime на заданное число (секунды)
demo.currentTime = 60

// Устанавливает громкость проигрывателя на заданное число (0,5 — половина громкости)
demo.volume = 0.5

// Устанавливает скорость воспроизведения проигрывателя на заданное число (от 0,1 до 8)
demo.speed = 2

// Устанавливает смещение заголовка проигрывателя на заданное число (-5 до 5)
demo.captionOffset = 2

// Включает или выключает проигрыватель (логическое значение)
demo.muted = true
  • Интеграции:
Название и информация Пример
WebTorrent
Для получения дополнительной информации ознакомьтесь с документацией WebTorrent.
Codepen
dash.js
Для получения дополнительной информации прочитайте документацию dash.js.
Codepen
Shaka Player
Для получения дополнительной информации прочтите документацию Shaka Player.
Codepen
hls.js
Для получения дополнительной информации ознакомьтесь с документацией hls.js.
Codepen
  • События:

Используя стандартные события мультимедиа, вы можете прослушивать события на целевом элементе, который вы настроили. Ознакомьтесь с примером ниже:

demo.video.addEventListener("canplay", (event) => {
   console.log(event);
});
Событие Описание
abort Отправляется, когда воспроизведение прерывается; например, если воспроизводимое медиа перезапускается с начала, это событие отправляется.
canplay Отправляется, когда доступно достаточно данных для воспроизведения медиа, по крайней мере, на несколько кадров.
canplaythrough Отправляется, когда readyState изменяется на HAVE_ENOUGH_DATA, указывая на то, что всё медиа можно воспроизводить без прерываний, при условии, что скорость загрузки остаётся хотя бы на текущем уровне.
durationchange Метаданные загружены или изменены, что указывает на изменение длительности медиа.
emptied Медиа стало пустым; например, это событие отправляется, если медиа уже было загружено (или частично загружено), и вызывается метод load() для его перезагрузки.
error Отправляется при возникновении ошибки. Атрибут элемента error содержит дополнительную информацию.
interruptbegin Отправляется, когда аудио, воспроизводимое на устройстве Firefox OS, прерывается, либо потому, что приложение, воспроизводящее аудио, отправляется в фоновый режим, либо начинает воспроизводиться аудио в более приоритетном аудиоканале.
interruptend Отправляется, когда ранее прерванное аудио на устройстве Firefox OS возобновляет воспроизведение — когда прерывание заканчивается.
loadeddata Первый кадр медиа завершил загрузку.
loadedmetadata Метаданные медиа завершили загрузку; все атрибуты теперь содержат столько полезной информации, сколько они собираются получить.
loadstart Отправляется, когда начинается загрузка медиа.
pause Отправляется, когда состояние воспроизведения изменено на приостановленное (свойство paused имеет значение true).
play Отправляется, когда состояние воспроизведения больше не приостановлено в результате метода play или атрибута autoplay.
playing Отправляется, когда у медиа достаточно данных, чтобы начать воспроизведение, после события play, но также при восстановлении после остановки, когда зацикливающееся медиа перезапускает, и после seeked, если оно воспроизводило перед поиском.

Изменение скорости| Отправляется при изменении скорости воспроизведения.

Завершение поиска| Отправляется после завершения операции поиска.

Начало поиска| Отправляется, когда начинается операция поиска.

Остановка| Отправляется, когда пользовательский агент пытается получить данные медиа, но данные неожиданно не поступают.

Приостановка| Отправляется при приостановке загрузки медиа; это может произойти либо потому, что загрузка завершена, либо по какой-либо другой причине.

Обновление времени| Значение, указанное в атрибуте currentTime элемента, изменилось.

Изменение громкости| Отправляется при изменении громкости аудио (как при установке громкости, так и при изменении атрибута muted).

Ожидание| Отправляется, когда запрошенная операция (например, воспроизведение) задерживается до завершения другой операции (например, поиска).

Смена субтитров| Отправляется при смене субтитров.

Смещение субтитров| Отправляется при смещении субтитров.

Переключение субтитров| Отправляется при переключении состояния субтитров.

◼️ Стилизация > Цвета:

Используя CSS Custom Properties, вы можете легко настроить свой собственный проигрыватель. Проверьте ниже список переменных и их назначение:

Имя Описание По умолчанию
--moovie_main_color Основной цвет Moovie #3191f7
--moovie_bg_controls Цвет фона при наведении на кнопки rgba(16, 34, 62, 0.6)
--moovie_bg_submenu Цвет фона подменю #f7f7f7
--moovie_bg_cuetimer Цвет фона таймера #2b2b2b
--moovie_submenu_options_fcolor Цвет текста подменю #515151
--moovie_topic_submenu_fcolor Цвет текста темы подменю #797979
--moovie_currenttime_color Цвет текста CurrentTime белый
--moovie_submenu_options_fsize Размер шрифта опций подменю 10pt
--moovie_topic_submenu_fsize Размер шрифта темы подменю 9pt
--moovie_currenttime_fsize Размер шрифта CurrentTime 11pt
--moovie_cuetimer_fsize Размер шрифта таймера 9pt
--moovie_svgicons_width Размер значков 15px
--moovie_padding_controls Отступ панели управления 13px
--moovie_caption_fcolor Цвет текста субтитров белый
--moovie_cuetimer_fcolor Цвет шрифта таймера белый

◼️ Стилизация > Иконки:

Moovie использует значки в формате .svg, которые хранятся в папке icons, расположенной по умолчанию в корневом каталоге, однако вы можете указать новое местоположение в параметрах конфигурации.

config: {
    icons: {
        path: "./path/to/folder/"
    }
}

Структура папки:

moovie/
├── icons/
│   ├── back.svg
│   ├── caption.svg
│   ├── cc.svg
│   ├── cog.svg
│   ├── fullscreen.svg
│   ├── mute.svg
│   ├── next.svg
│   ├── pause.svg
│   ├── play.svg
│   └── volume.svg
|
├── css/
│   ├── moovie.css
|
└── js/
    ├── moovie.js

◼️ Плагины:

Существуют внешние плагины, которые можно использовать для добавления дополнительных функций. Чтобы вызвать плагин, следуйте примеру ниже:

<!-- Включить путь плагина после moovie.js -->
<script src="path/to/plugin.js"></script>

По умолчанию плагины находятся в папке ./js/plugins/, но вы можете указать новое расположение.

// Инициализировать Moovie
var demo = new Moovie({selector: "#example"});

// Вызвать внешний плагин (пример плейлиста)
var PlaylistPlugin = new _Moovie_Playlist({reference: demo});

Список доступных плагинов:

Название Описание
_Moovie_Playlist Создать плейлист видео

◼️ Пользовательские события:

Вы можете добавить несколько событий, которые будут выполняться в определённое время, например:

var demo = new Moovie({
  selector: "#example",
  customEvents: [
    {
      type: "skip",
      to: "56",
      starttime: "10",
      endtime: "20",
      content: **Укажите расположение папки с иконками**

```javascript
document.addEventListener("DOMContentLoaded", function() {
  var demo = new Moovie({
    selector: "#example",
    moovie_internalID: null, // Перезаписывает сгенерированный randomID
    dimensions: {
         width: "100%"
    },
    config: {
        main : {
            loop: true
        },
        storage: {
           captionOffset: false,
           playrateSpeed: false,
           captionSize: false
        },
        controls : {
            playtime : true,
            mute : true,
            volume : true,
            subtitles : true,
            config : true,
            fullscreen : true,
            submenuCaptions : true,
            submenuOffset : true,
            submenuSpeed : true,
            allowLocalSubtitles : true  
        },
        i18n : {
            play : "(Play:Pause)",
            mute : "(Mute:Unmute)",
            subtitles : "(Enable:Disable) Subtitles",
            config : "Settings",
            fullscreen : "(Enter:Exit) Fullscreen",
            main_topic: "settings:",
            main_caption: "Captions",
            main_offset: "Caption Offset",
            main_speed: "Speed",
            main_disabled: "Disabled",
            main_default: "Default",
            caption_topic: "Captions:",
            caption_back: "Back",
            caption_load: "Load Locally",
            offset_topic: "Adjust Caption Offset",
            speed_topic: "Speed Adjust"
         }
    },
    icons: {
        path: "./path/to/folder/"
    }
  });
});

◼️ Спонсоры:

Спасибо компании JetBrains за поддержку этого проекта своими невероятными инструментами!

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Moovie.js — это простой в использовании HTML5-плеер, ориентированный на фильмы, который поддерживает функции ускоренного воспроизведения, управления с помощью горячих клавиш, а также мгновенной настройки смещения субтитров. Развернуть Свернуть
JavaScript и 3 других языков
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/mirrors-mooviejs.git
git@api.gitlife.ru:oschina-mirror/mirrors-mooviejs.git
oschina-mirror
mirrors-mooviejs
mirrors-mooviejs
main