README.md

Документация

Описание

Пакет для работы с Unity Video Player.


Настойка

Создание префаба и его настройка

1) Создание префаба:

Hierarchy -> ПКМ -> SilaSveta -> Video Player

2) Настройка компонентов.

Video Player (от Unity) :

  • Play On Awake - отвечает за начало проигрывание во время запуска приложения
  • Wait For First Frame - отвечает за ожидание первого кадра видео
  • Loop - выставляется автоматически в зависимости от Video Player Mode
  • Skip On Drop - отвечает за синхронизированный вывод видео в игровом времени

Raw Image Video Player:

Texture Settings:

  • Стандартные компоненты для настройки RawImage, кроме UV Rect и Texture
  • Texture Mode - отвечает за тип текстуры( auto или custom )
  • Auto Resize - отвечает за resize RectTransform до размеров видео клипа в VideoPlayer, отображается и учитывается только если Texture Mode = auto
  • Texture - отвечает за RenderTexture, который будет использовать VideoPlayer, отображается только если Texture Mode = custom

Video Player Settings:

  • Show First Frame - отвечает за отображение первого кадра видео, отображается только если Play On Awake = false
  • Video Player Mode - отвечает за режим проигрывания:

    • sigleFile - проигрывание выбранного файла 1 раз
    • sigleFileLoop - проигрывание выбранного файла в цикле
    • allFilesOneLoop - проигрывание всех файлов в цикле 1 раз, начиная с выбранного
    • allFilesLoop - проигрывание всех файлов в цикле, начиная с выбранного
  • Selected Folder - указывает на выбранную пользователем папку с видео

  • Кнопка Browse Clips - отвечает за выбор дерриктивы с контентом
  • Selected Clip - отвечает за выбор файла для начала отображения
  • Кнопка Update - отвечает за обновление найденных файлов

Subtitles:

  • Subtitle Text - отвечает за поле с TMP_Text для вывода субтитров
  • Selected Subs - указывает на выбранный пользователем файл с субтитрами
  • Кнопка Browse Subs - отвечает за выбор файла с субтитрами

Preview:

  • Preview Color - отвечает за цвет preview
  • Show Preview - отвечает за отображение превью в Editor Mode

Animation State:

  • Playing / Paused / Stopped - отображают и изменяют статус VideoPlayer
  • Play From Beginning - запускает видео сначала при Playing = true
  • Play Clear Preview - очищает текстуру после проигрывания видео при помощи Playing = true
  • Pause Frame - кадр для остановки при Paused = true(если Pause Frame = -1, то пауза поставится на текущем фрейме)

Дополнительная информация

1) Для определения конца видео следует использовать event - VideoPlayer.loopPointReached


2) Для определения времени(в секундах) следует использовать:

VideoPlayer.clockTime - для получения времени проигрывания

VideoPlayer.frameCount/VideoPlayer.frameRate - для получения длины клипа


3) Поддерживаемые форматы

Для видео:

  • asf
  • avi
  • dv
  • m4v
  • mov
  • mpg
  • mpeg
  • ogv
  • vp8
  • webm
  • wmv

Для субтитров:

  • srt

4) Разде Animator State

Для добавления ключей Playing Paused Stopped в Animator:

Animation -> Add Property -> Video Player Name -> Raw Image Video Player -> key

Для повторного проигрывания singleFile видео через Animator следует вызвать метод ResetSingleFile(), либо Это можно сделать 2 альтернативными способами:

  • StopCurrentClip()
  • Stopped = true

после этого следует снять флаг Stopped (Stopped = false) и можно заново запускать видео. При вызове метода ResetSingleFile() флаг Stopped снимется автоматически!

Пример работы:


5) Баги отображения

При возникновении визуальных багов в проекте следует использовать:

Edit -> Preferences -> Gl Cache -> Clean Cache

Public методы:

  • ResetSingleFile() - позволяет сбросить видеоплеер перед повторным проигрыванием singleFile видео
  • HasVideo(string name) - проверяет, находится ли видео с таким именем в выбранной папке
  • LoadSubtitles(string url) - загружает субтитры по ссылке /path
  • PlayClipByName(string name, bool fromBeginning = false, bool clearPreview = false) - проигрывает видео по имени
  • PlayClipByIndex(int index, bool fromBeginning = false, bool clearPreview = false) - проигрывать видео по ID
  • PlayCurrentClip(bool fromBeginning = false, bool clearPreview = false) - запустить текущее видео
  • PauseCurrentClip() - поставить на паузу текущее видео на текущем кадре
  • PauseCurrentClip(int frame) - поставить на паузу текущее видео на кадре frame. Если frame < 0, то вызовется PauseCurrentClip()
  • PauseCurrentClip(float time) - поставить на паузу текущее видео на Time = time. Если time < 0, то вызовется PauseCurrentClip()
  • StopCurrentClip() - остановить текущее видео
  • PlayNextClip(bool fromBeginning = true, bool clearPreview = true) - запустить следующее видео в папке
  • PlayPrevClip(bool fromBeginning = true, bool clearPreview = true) - запустить предыдущее видео в папке
  • bool SetClipName(string name) - устанавливает видео по имени из выбранной папки, потом продолжает свой AnimationState, если AnimationState не используются(флаги Playing Paused Stopped = false), то видео будет поставлено на паузу
  • bool SetClipIndex(int index) - устанавливает видео по индексу из выбранной папки, потом продолжает свой AnimationState, если AnimationState не используются(флаги Playing Paused Stopped = false), то видео будет поставлено на паузу

Команда

Конвейеры
0 успешных
0 с ошибкой