BusEngine.dll

BusEngine.Audio (Class)

Класс отвечающий за работу с Аудио файлами (mp3, wav, ogg). Это Аудио плеер движка. С помощью этого класса можно будет управлять всеми Аудио (фоновая музыка, разговоры, шумы и т.д.).
В основе BusEngine.Audio лежит библиотека VideoLAN | libvlcsharp.

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

Методы

var _audio = (BusEngine.Audio)new BusEngine.Audio(null|string|string[])

Метод конструктор (нестатический) уровня класса принимает string строку полного или относительного пути до Аудио файла для его проигрывания после вызова "_audio.Play()". Также можно указать string[] массив строк, тогда каждое аудио будет проигривать по порядку, вызов "_audio.Dispose()" остановит весь список, а вызов "_audio.Stop()" текущее. Поддерживаемые форматы: mp3, wav, ogg.

(BusEngine.Audio)_audio.Play(null|string|string[])

Метод (нестатический) уровня класса принимает string строку полного или относительного пути до Аудио файла для его проигрывания сначала. Также можно указать string[] массив строк, тогда каждое аудио будет проигривать по порядку, вызов "_audio.Dispose()" остановит весь список, а вызов "_audio.Stop()" текущее. Поддерживаемые форматы: mp3, wav, ogg.

(void)_audio.Pause(string)

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

(void)_audio.Stop(string)

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

(void)_audio.Dispose()

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

Наверх

Подклассы

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

Константы

Констант нет

Поля

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

Поле (нестатическое) уровня класса принимает или возвращает string[] массив строк полного или относительного пути до Аудио файла для его проигрывания сначала или момента паузы. Поддерживаемые форматы: mp3, wav, ogg.

(string)_audio.Url = string

Поле (нестатическое) уровня класса принимает или возвращает string строку полного или относительного пути до Аудио файла для его проигрывания сначала или момента паузы. Поддерживаемые форматы: mp3, wav, ogg.

(bool)_audio.Loop = bool

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

(byte)_audio.Volume = byte

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

(sbyte)_audio.Balance = sbyte

Поле (нестатическое) уровня класса принимает или возвращает sbyte строку от -100 до 100 для установки баланса звука между дорожками. По умолчанию 0 - равномерное распределение по дорожкам.

(bool)_audio.Mute = bool

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

(double)_audio.DisposeAuto = double

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

Наверх

Свойства

(double)_audio.Duration

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

(double)_audio.Position = double

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

(bool)_audio.IsPlay

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

(bool)_audio.IsPause

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

(bool)_audio.IsStop

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

(bool)_audio.IsEnd

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

(bool)_audio.IsDispose

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

Наверх

События

(void)_audio.OnPlay

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

(void)_video.OnDuration

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

(void)_audio.OnLoop

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

(void)_audio.OnPause

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

(void)_audio.OnStop

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

(void)_audio.OnEnd

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

(void)_audio.OnDispose

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

(void)_audio.OnNotFound

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

Наверх

Пример файла 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[] audios = {"Audios/BusEngine.mp3", "Audios/BusEngine.mp3", "Audios/BusEngine.mp3"};
  9.             // создаём новый объект аудио
  10.             BusEngine.Audio _audio = new BusEngine.Audio(audios).Play();
  11.             // создаём событие клавиатуры внутри метода
  12.             System.Windows.Forms.KeyEventHandler KeyDownAudio = (o, e) => {
  13.                 // выбираем клавишу пробела
  14.                 if (e.KeyCode == System.Windows.Forms.Keys.Space) {
  15.                     if (!_audio.IsDispose) {
  16.                         _audio.Stop();
  17.                         BusEngine.Log.Info("Stop Audio");
  18.                     } else {
  19.                         BusEngine.Log.Info("Dispose Audio");
  20.                     }
  21.                 }
  22.             };
  23.             _audio.OnDispose += (BusEngine.Audio a, string url) => {
  24.                 // удаляем событие клавиш
  25.                 BusEngine.UI.Canvas.WinForm.KeyDown -= KeyDownAudio;
  26.                 /* здесь пишем код запуска другого кода */
  27.             };
  28.             // добавляем событие клавиш
  29.             BusEngine.UI.Canvas.WinForm.KeyDown += KeyDownAudio;
  30.         }
  31.     }
  32.     /** API BusEngine.Plugin */
  33. }
  34. /** API BusEngine.Game - пользовательский код */
Наверх