BusEngine.dll

BusEngine.Video (Class)

Класс отвечающий за работу с Видео файлами (mp4, wmv, ogv, webm). Это Видео плеер движка. С помощью этого класса можно будет управлять всеми Видео (видео при старте движка, между уровней, в текстурах и т.д.).
В основе BusEngine.Video лежит библиотека VideoLAN | libvlcsharp. BusEngine.Video работает после загрузки "BusEngine.UI.Canvas" (после срабатывания события "BusEngine.Plugin.InitializeCanvas()").

Класс тестируется, библиотека VideoLAN | libvlcsharp имеет косяк с уничтожением объекта (5-10 Мб библиотека требует на постоянной основе). Тажже некоторые функции ещё не работают (повтор видео).

Методы

var _video = (BusEngine.Video)new BusEngine.Video(null|string|string[])

Метод конструктор (нестатический) уровня класса принимает string строку полного или относительного пути до Видео файла для его проигрывания после вызова "_video.Play()". Также можно указать string[] массив строк, тогда каждое видео будет проигривать по порядку, вызов "_video.Dispose()" остановит весь список, а вызов "_video.Stop()" текущее. Поддерживаемые форматы: mp4, wmv, ogv, webm.

(BusEngine.Video)_video.Play(null|string|string[])

Метод (нестатический) уровня класса принимает string строку полного или относительного пути до Видео файла для его проигрывания сначала. Также можно указать string[] массив строк, тогда каждое видео будет проигривать по порядку, вызов "_video.Dispose()" остановит весь список, а вызов "_video.Stop()" текущее. Поддерживаемые форматы: mp4, wmv, ogv, webm.

(void)_video.Pause(string)

Метод (нестатический) уровня класса принимает string строку полного или относительного пути до Видео файла для Временной остановки в определённом месте и воспроизведения с определённого места Видео файла.

(void)_video.Stop(string)

Метод (нестатический) уровня класса принимает string строку полного или относительного пути до Видео файла для Остановки Видео файла.

(void)_video.Dispose()

Метод (нестатический) уровня класса для Остановки Видео файла и уничтожения объекта Видео для освобождения оперативной памяти. Вызывать необязательно так как память освобождается автоматический при событии остановки Видео, если в "_video.DisposeAuto" не установлено значение 0.

Наверх

Подклассы

Подклассов нет

Константы

Констант нет

Поля

(string[])_video.Urls = string[]

Поле (нестатическое) уровня класса принимает или возвращает string[] массив строк полного или относительного пути до Видео файла для его проигрывания сначала или момента паузы. Поддерживаемые форматы: mp4, wmv, ogv, webm.

(string)_video.Url = string

Поле (нестатическое) уровня класса принимает string строку полного или относительного пути до Видео файла для его проигрывания сначала или момента паузы. Поддерживаемые форматы: mp4, wmv, ogv, webm.

(bool)_video.Loop = bool

Поле (нестатическое) уровня класса принимает bool значение. True - проигривать текущее видео или текущий список видео повторно. По умолчанию False.

(byte)_video.Volume = byte

Поле (нестатическое) уровня класса принимает byte строку от 0 до 100 для установки громкости звука. По умолчанию 100.

(bool)_video.Mute = bool

Поле (нестатическое) уровня класса принимает bool значение. True - звук отключён. По умолчанию False.

(double)_video.DisposeAuto = double

Поле (нестатическое) уровня класса принимает или возвращает double строку от 100 и выше для установки времени в миллисекундах после которого будет произведено уничтожение объектов (освобождение оперативной памяти устройства). 0 - автоматическое уничтожение отключено и вам решать, когда вызвать "_video.Dispose()". По умолчанию 500.

Наверх

Свойства

(double)_video.Duration

Свойство (нестатическое) уровня класса возвращает double значение, текущая позиция проигривания файла в миллисекундах.

(double)_video.Position = double

Свойство (нестатическое) уровня класса принимает или возвращает double значение. Установка позиции начала проигривания файла в миллисекундах. По умолчанию 0.

(bool)_video.IsPlay

Свойство (нестатическое) уровня класса возвращает bool значение, текущее состояние файла. True - видео файл проигривается.

(bool)_video.IsPause

Свойство (нестатическое) уровня класса возвращает bool значение, текущее состояние файла. True - видео файл на паузе.

(bool)_video.IsStop

Свойство (нестатическое) уровня класса возвращает bool значение, текущее состояние файла. True - видео файл остановлен вручную.

(bool)_video.IsEnd

Свойство (нестатическое) уровня класса возвращает bool значение, текущее состояние файла. True - видео файл остановлен самостоятельно.

(bool)_video.IsDispose

Свойство (нестатическое) уровня класса возвращает bool значение, текущее состояние файла. True - объект видео удаляется или удалён.

Наверх

События

(void)_video.OnPlay

Событие (нестатическое) уровня класса принимает метод с двумя параметрами (BusEngine.Video, string). Событие "_video.OnPlay" будет вызывать ваш метод, когда запустился указанный файл и передавать объект "BusEngine.Video()" в первый параметр, а строку содержащую путь к файлу во второй параметр вашего метода.

(void)_video.OnDuration

Событие (нестатическое) уровня класса принимает метод с двумя параметрами (BusEngine.Video, string). Событие "_video.OnDuration" будет вызывать ваш метод каждые 100-200 миллисекунд и передавать объект "BusEngine.Video()" в первый параметр, а строку содержащую путь к файлу во второй параметр вашего метода.

(void)_video.OnLoop

Событие (нестатическое) уровня класса принимает метод с двумя параметрами (BusEngine.Video, string). Событие "_video.OnLoop" будет вызывать ваш метод, когда повторно запустился указанный файл и передавать объект "BusEngine.Video()" в первый параметр, а строку содержащую путь к файлу во второй параметр вашего метода.

(void)_video.OnPause

Событие (нестатическое) уровня класса принимает метод с двумя параметрами (BusEngine.Video, string). Событие "_video.OnPause" будет вызывать ваш метод, когда остановился или начал воспроизведение с момента остановки указанный файл и передавать объект "BusEngine.Video()" в первый параметр, а строку содержащую путь к файлу во второй параметр вашего метода.

(void)_video.OnStop

Событие (нестатическое) уровня класса принимает метод с двумя параметрами (BusEngine.Video, string). Событие "_video.OnStop" будет вызывать ваш метод, когда файл остановился вручную при вызове метода "_video.Stop()" и передавать объект "BusEngine.Video()" в первый параметр, а строку содержащую путь к файлу во второй параметр вашего метода.

(void)_video.OnEnd

Событие (нестатическое) уровня класса принимает метод с двумя параметрами (BusEngine.Video, string). Событие "_video.OnEnd" будет вызывать ваш метод, когда файл остановился самостоятельно по достижению конца и передавать объект "BusEngine.Video()" в первый параметр, а строку содержащую путь к файлу во второй параметр вашего метода.

(void)_video.OnDispose

Событие (нестатическое) уровня класса принимает метод с двумя параметрами (BusEngine.Video, string). Событие "_video.OnDispose" будет вызывать ваш метод, когда объект "BusEngine.Video()" уничтожен и передавать объект "BusEngine.Video()" в первый параметр, а строку содержащую путь к файлу во второй параметр вашего метода.

(void)_video.OnNotFound

Событие (нестатическое) уровня класса принимает метод с двумя параметрами (BusEngine.Video, string). Событие "_video.OnNotFound" будет вызывать ваш метод, если нет указанного файла и передавать объект "BusEngine.Video()" в первый параметр, а строку содержащую путь к файлу во второй параметр вашего метода.

Наверх

Пример файла Program.cs

В коде отражено воспроизведение видео файлов расположенных относительно папки игровых файлов "BusEngine.Engine.DataDirectory" при старте своего плагина с названием "MyPlugin", с возможностью пропуска по нажатию клавиши "Пробел".

  1. /** API BusEngine.Game - пользовательский код */
  2. namespace BusEngine.Game {
  3.     /** API BusEngine.Plugin */
  4.     public class MyPlugin : BusEngine.Plugin {
  5.         // при запуске BusEngine после создания формы Canvas
  6.         public override void InitializeСanvas() {
  7.             // создаём массив ссылок или путей
  8.             string[] videos = {"Videos/BusEngine.mp4", "Videos/BusEngine.mp4", "Videos/BusEngine.mp4"};
  9.             // создаём новый объект видео
  10.             BusEngine.Video _video = new BusEngine.Video(videos).Play();
  11.             // создаём событие клавиатуры внутри метода
  12.             System.Windows.Forms.KeyEventHandler KeyDownVideo = (o, e) => {
  13.                 // выбираем клавишу пробела
  14.                 if (e.KeyCode == System.Windows.Forms.Keys.Space) {
  15.                     if (!_video.IsDispose) {
  16.                         _video.Stop();
  17.                         BusEngine.Log.Info("Stop Video");
  18.                     } else {
  19.                         BusEngine.Log.Info("Dispose Video");
  20.                     }
  21.                 }
  22.             };
  23.             _video.OnDispose += (BusEngine.Video v, string url) => {
  24.                 // удаляем событие клавиш
  25.                 BusEngine.UI.Canvas.WinForm.KeyDown -= KeyDownVideo;
  26.                 /* здесь пишем код запуска другого кода */
  27.             };
  28.             // добавляем событие клавиш
  29.             BusEngine.UI.Canvas.WinForm.KeyDown += KeyDownVideo;
  30.         }
  31.     }
  32.     /** API BusEngine.Plugin */
  33. }
  34. /** API BusEngine.Game - пользовательский код */
Наверх