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. |
Метод (нестатический) уровня класса принимает string строку полного или относительного пути до Аудио файла для его проигрывания сначала. Также можно указать string[] массив строк, тогда каждое аудио будет проигривать по порядку, вызов "_audio.Dispose()" остановит весь список, а вызов "_audio.Stop()" текущее. Поддерживаемые форматы: mp3, wav, ogg. |
Метод (нестатический) уровня класса принимает string строку полного или относительного пути до Аудио файла для Временной остановки в определённом месте и воспроизведения с определённого места Аудио файла. |
Метод (нестатический) уровня класса принимает string строку полного или относительного пути до Аудио файла для Остановки Аудио файла. |
Метод (нестатический) уровня класса для Остановки Аудио файла и уничтожения объекта Аудио для освобождения оперативной памяти. Вызывать необязательно так как память освобождается автоматический при событии остановки Аудио, если в "_audio.DisposeAuto" не установлено значение 0. |
Подклассы
Константы
Поля
Поле (нестатическое) уровня класса принимает или возвращает string[] массив строк полного или относительного пути до Аудио файла для его проигрывания сначала или момента паузы. Поддерживаемые форматы: mp3, wav, ogg. |
Поле (нестатическое) уровня класса принимает или возвращает string строку полного или относительного пути до Аудио файла для его проигрывания сначала или момента паузы. Поддерживаемые форматы: mp3, wav, ogg. |
Поле (нестатическое) уровня класса принимает или возвращает bool значение. True - проигривать текущее аудио или текущий список аудио повторно. По умолчанию False. |
Поле (нестатическое) уровня класса принимает или возвращает byte строку от 0 до 100 для установки громкости звука. По умолчанию 100. |
Поле (нестатическое) уровня класса принимает или возвращает sbyte строку от -100 до 100 для установки баланса звука между дорожками. По умолчанию 0 - равномерное распределение по дорожкам. |
Поле (нестатическое) уровня класса принимает или возвращает bool значение. True - звук отключён. По умолчанию False. |
Поле (нестатическое) уровня класса принимает или возвращает double строку от 100 и выше для установки времени в миллисекундах после которого будет произведено уничтожение объектов (освобождение оперативной памяти устройства). 0 - автоматическое уничтожение отключено и вам решать, когда вызвать "_audio.Dispose()". По умолчанию 500. |
Свойства
Свойство (нестатическое) уровня класса возвращает double значение, текущая позиция проигривания файла в миллисекундах. |
Свойство (нестатическое) уровня класса принимает или возвращает double значение. Установка позиции начала проигривания файла в миллисекундах. По умолчанию 0. |
Свойство (нестатическое) уровня класса возвращает bool значение, текущее состояние файла. True - аудио файл проигривается. |
Свойство (нестатическое) уровня класса возвращает bool значение, текущее состояние файла. True - аудио файл на паузе. |
Свойство (нестатическое) уровня класса возвращает bool значение, текущее состояние файла. True - аудио файл остановлен вручную. |
Свойство (нестатическое) уровня класса возвращает bool значение, текущее состояние файла. True - аудио файл остановлен самостоятельно. |
Свойство (нестатическое) уровня класса возвращает bool значение, текущее состояние файла. True - объект аудио удаляется или удалён. |
События
Событие (нестатическое) уровня класса принимает метод с двумя параметрами (BusEngine.Audio, string). Событие "_audio.OnPlay" будет вызывать ваш метод, когда запустился указанный файл и передавать объект "BusEngine.Audio()" в первый параметр, а строку содержащую путь к файлу во второй параметр вашего метода. |
Событие (нестатическое) уровня класса принимает метод с двумя параметрами (BusEngine.Audio, string). Событие "_video.OnDuration" будет вызывать ваш метод каждые 100-200 миллисекунд и передавать объект "BusEngine.Audio()" в первый параметр, а строку содержащую путь к файлу во второй параметр вашего метода. |
Событие (нестатическое) уровня класса принимает метод с двумя параметрами (BusEngine.Audio, string). Событие "_audio.OnLoop" будет вызывать ваш метод, когда повторно запустился указанный файл и передавать объект "BusEngine.Audio()" в первый параметр, а строку содержащую путь к файлу во второй параметр вашего метода. |
Событие (нестатическое) уровня класса принимает метод с двумя параметрами (BusEngine.Audio, string). Событие "_audio.OnPause" будет вызывать ваш метод, когда остановился или начал воспроизведение с момента остановки указанный файл и передавать объект "BusEngine.Audio()" в первый параметр, а строку содержащую путь к файлу во второй параметр вашего метода. |
Событие (нестатическое) уровня класса принимает метод с двумя параметрами (BusEngine.Audio, string). Событие "_audio.OnStop" будет вызывать ваш метод, когда файл остановился вручную при вызове метода "_audio.Stop()" и передавать объект "BusEngine.Audio()" в первый параметр, а строку содержащую путь к файлу во второй параметр вашего метода. |
Событие (нестатическое) уровня класса принимает метод с двумя параметрами (BusEngine.Audio, string). Событие "_audio.OnEnd" будет вызывать ваш метод, когда файл остановился самостоятельно по достижению конца и передавать объект "BusEngine.Audio()" в первый параметр, а строку содержащую путь к файлу во второй параметр вашего метода. |
Событие (нестатическое) уровня класса принимает метод с двумя параметрами (BusEngine.Audio, string). Событие "_audio.OnDispose" будет вызывать ваш метод, когда объект "BusEngine.Audio()" уничтожен и передавать объект "BusEngine.Audio()" в первый параметр, а строку содержащую путь к файлу во второй параметр вашего метода. |
Событие (нестатическое) уровня класса принимает метод с двумя параметрами (BusEngine.Audio, string). Событие "_audio.OnNotFound" будет вызывать ваш метод, если нет указанного файла и передавать объект "BusEngine.Audio()" в первый параметр, а строку содержащую путь к файлу во второй параметр вашего метода. |
Пример файла 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[] audios = {"Audios/BusEngine.mp3", "Audios/BusEngine.mp3", "Audios/BusEngine.mp3"};
- // создаём новый объект аудио
- // создаём событие клавиатуры внутри метода
- System.Windows.Forms.KeyEventHandler KeyDownAudio = (o, e) => {
- // выбираем клавишу пробела
- if (e.KeyCode == System.Windows.Forms.Keys.Space) {
- if (!_audio.IsDispose) {
- _audio.Stop();
- BusEngine.Log.Info("Stop Audio");
- } else {
- BusEngine.Log.Info("Dispose Audio");
- }
- }
- };
- _audio.OnDispose += (BusEngine.Audio a, string url) => {
- // удаляем событие клавиш
- BusEngine.UI.Canvas.WinForm.KeyDown -= KeyDownAudio;
- /* здесь пишем код запуска другого кода */
- };
- // добавляем событие клавиш
- BusEngine.UI.Canvas.WinForm.KeyDown += KeyDownAudio;
- }
- }
- /** API BusEngine.Plugin */
- }
- /** API BusEngine.Game - пользовательский код */