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. |
Метод (нестатический) уровня класса принимает string строку полного или относительного пути до Видео файла для его проигрывания сначала. Также можно указать string[] массив строк, тогда каждое видео будет проигривать по порядку, вызов "_video.Dispose()" остановит весь список, а вызов "_video.Stop()" текущее. Поддерживаемые форматы: mp4, wmv, ogv, webm. |
Метод (нестатический) уровня класса принимает string строку полного или относительного пути до Видео файла для Временной остановки в определённом месте и воспроизведения с определённого места Видео файла. |
Метод (нестатический) уровня класса принимает string строку полного или относительного пути до Видео файла для Остановки Видео файла. |
Метод (нестатический) уровня класса для Остановки Видео файла и уничтожения объекта Видео для освобождения оперативной памяти. Вызывать необязательно так как память освобождается автоматический при событии остановки Видео, если в "_video.DisposeAuto" не установлено значение 0. |
Подклассы
Константы
Поля
Поле (нестатическое) уровня класса принимает или возвращает string[] массив строк полного или относительного пути до Видео файла для его проигрывания сначала или момента паузы. Поддерживаемые форматы: mp4, wmv, ogv, webm. |
Поле (нестатическое) уровня класса принимает string строку полного или относительного пути до Видео файла для его проигрывания сначала или момента паузы. Поддерживаемые форматы: mp4, wmv, ogv, webm. |
Поле (нестатическое) уровня класса принимает bool значение. True - проигривать текущее видео или текущий список видео повторно. По умолчанию False. |
Поле (нестатическое) уровня класса принимает byte строку от 0 до 100 для установки громкости звука. По умолчанию 100. |
Поле (нестатическое) уровня класса принимает bool значение. True - звук отключён. По умолчанию False. |
Поле (нестатическое) уровня класса принимает или возвращает double строку от 100 и выше для установки времени в миллисекундах после которого будет произведено уничтожение объектов (освобождение оперативной памяти устройства). 0 - автоматическое уничтожение отключено и вам решать, когда вызвать "_video.Dispose()". По умолчанию 500. |
Свойства
Свойство (нестатическое) уровня класса возвращает double значение, текущая позиция проигривания файла в миллисекундах. |
Свойство (нестатическое) уровня класса принимает или возвращает double значение. Установка позиции начала проигривания файла в миллисекундах. По умолчанию 0. |
Свойство (нестатическое) уровня класса возвращает bool значение, текущее состояние файла. True - видео файл проигривается. |
Свойство (нестатическое) уровня класса возвращает bool значение, текущее состояние файла. True - видео файл на паузе. |
Свойство (нестатическое) уровня класса возвращает bool значение, текущее состояние файла. True - видео файл остановлен вручную. |
Свойство (нестатическое) уровня класса возвращает bool значение, текущее состояние файла. True - видео файл остановлен самостоятельно. |
Свойство (нестатическое) уровня класса возвращает bool значение, текущее состояние файла. True - объект видео удаляется или удалён. |
События
Событие (нестатическое) уровня класса принимает метод с двумя параметрами (BusEngine.Video, string). Событие "_video.OnPlay" будет вызывать ваш метод, когда запустился указанный файл и передавать объект "BusEngine.Video()" в первый параметр, а строку содержащую путь к файлу во второй параметр вашего метода. |
Событие (нестатическое) уровня класса принимает метод с двумя параметрами (BusEngine.Video, string). Событие "_video.OnDuration" будет вызывать ваш метод каждые 100-200 миллисекунд и передавать объект "BusEngine.Video()" в первый параметр, а строку содержащую путь к файлу во второй параметр вашего метода. |
Событие (нестатическое) уровня класса принимает метод с двумя параметрами (BusEngine.Video, string). Событие "_video.OnLoop" будет вызывать ваш метод, когда повторно запустился указанный файл и передавать объект "BusEngine.Video()" в первый параметр, а строку содержащую путь к файлу во второй параметр вашего метода. |
Событие (нестатическое) уровня класса принимает метод с двумя параметрами (BusEngine.Video, string). Событие "_video.OnPause" будет вызывать ваш метод, когда остановился или начал воспроизведение с момента остановки указанный файл и передавать объект "BusEngine.Video()" в первый параметр, а строку содержащую путь к файлу во второй параметр вашего метода. |
Событие (нестатическое) уровня класса принимает метод с двумя параметрами (BusEngine.Video, string). Событие "_video.OnStop" будет вызывать ваш метод, когда файл остановился вручную при вызове метода "_video.Stop()" и передавать объект "BusEngine.Video()" в первый параметр, а строку содержащую путь к файлу во второй параметр вашего метода. |
Событие (нестатическое) уровня класса принимает метод с двумя параметрами (BusEngine.Video, string). Событие "_video.OnEnd" будет вызывать ваш метод, когда файл остановился самостоятельно по достижению конца и передавать объект "BusEngine.Video()" в первый параметр, а строку содержащую путь к файлу во второй параметр вашего метода. |
Событие (нестатическое) уровня класса принимает метод с двумя параметрами (BusEngine.Video, string). Событие "_video.OnDispose" будет вызывать ваш метод, когда объект "BusEngine.Video()" уничтожен и передавать объект "BusEngine.Video()" в первый параметр, а строку содержащую путь к файлу во второй параметр вашего метода. |
Событие (нестатическое) уровня класса принимает метод с двумя параметрами (BusEngine.Video, string). Событие "_video.OnNotFound" будет вызывать ваш метод, если нет указанного файла и передавать объект "BusEngine.Video()" в первый параметр, а строку содержащую путь к файлу во второй параметр вашего метода. |
Пример файла Program.cs
В коде отражено воспроизведение видео файлов расположенных относительно папки игровых файлов "BusEngine.Engine.DataDirectory" при старте своего плагина с названием "MyPlugin", с возможностью пропуска по нажатию клавиши "Пробел".
- /** API BusEngine.Game - пользовательский код */
- namespace BusEngine.Game {
- /** API BusEngine.Plugin */
- public class MyPlugin : BusEngine.Plugin {
- // при запуске BusEngine после создания формы Canvas
- public override void InitializeСanvas() {
- // создаём массив ссылок или путей
- string[] videos = {"Videos/BusEngine.mp4", "Videos/BusEngine.mp4", "Videos/BusEngine.mp4"};
- // создаём новый объект видео
- // создаём событие клавиатуры внутри метода
- System.Windows.Forms.KeyEventHandler KeyDownVideo = (o, e) => {
- // выбираем клавишу пробела
- if (e.KeyCode == System.Windows.Forms.Keys.Space) {
- if (!_video.IsDispose) {
- _video.Stop();
- BusEngine.Log.Info("Stop Video");
- } else {
- BusEngine.Log.Info("Dispose Video");
- }
- }
- };
- _video.OnDispose += (BusEngine.Video v, string url) => {
- // удаляем событие клавиш
- BusEngine.UI.Canvas.WinForm.KeyDown -= KeyDownVideo;
- /* здесь пишем код запуска другого кода */
- };
- // добавляем событие клавиш
- BusEngine.UI.Canvas.WinForm.KeyDown += KeyDownVideo;
- }
- }
- /** API BusEngine.Plugin */
- }
- /** API BusEngine.Game - пользовательский код */