reckfellENGINE

AudioServer

Управляет глобальным микшером, шинами и временем аудио.

На этой странице
class AudioServerReckfellSharp

AudioServer настраивает шины всего запущенного проекта. Источники передают сигнал в шины, эффекты выполняются по порядку, затем применяется уровень шины и сигнал передаётся в принимающую шину слева. Master выводит общий микс.

Ищите шину по имени через GetBusIndex() и проверяйте -1. Индексы меняются при перестройке layout. Runtime-настройки не сохраняют ресурс проекта автоматически. Аудиомикшер работает независимо от кадров игры; его оценка времени и задержки не является измерением физического звука у слушателя.

Практический пример.

Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.

Свойства5

BusCountСвойство
# BusCount
C#
public static int BusCount { get; set; }

Количество доступных аудиошин.

InputDeviceСвойство
# InputDevice
C#
public static string InputDevice { get; set; }

Имя текущего устройства для аудиовхода (см. AudioServer.GetInputDeviceList). В системах с несколькими аудиовходами (например, аналоговыми, USB и HDMI аудио) это можно использовать для выбора устройства аудиовхода. Значение "Default" будет записывать звук на общесистемном аудиовходе по умолчанию. Если задано недопустимое имя устройства, значение будет возвращено к "Default". Примечание: ProjectSettings.audio/driver/enable_input должно быть true для работы аудиовхода. См. также описание этого параметра для предостережений, связанных с разрешениями и настройками конфиденциальности операционной системы.

OutputDeviceСвойство
# OutputDevice
C#
public static string OutputDevice { get; set; }

Имя текущего устройства для аудиовыхода (см. AudioServer.GetOutputDeviceList). В системах с несколькими аудиовыходами (например, аналоговым, USB и HDMI аудио) это можно использовать для выбора устройства аудиовыхода. Значение "Default" будет воспроизводить звук на общесистемном аудиовыходе по умолчанию. Если задано недопустимое имя устройства, значение будет возвращено к "Default".

PlaybackSpeedScaleСвойство
# PlaybackSpeedScale
C#
public static float PlaybackSpeedScale { get; set; }

Масштабирует скорость воспроизведения звука (например, если установить его на 0.5, звук будет воспроизводиться с половинной скоростью). См. также Engine.TimeScale, чтобы повлиять на общую скорость симуляции, которая не зависит от AudioServer.PlaybackSpeedScale.

SingletonСвойство
# Singleton
C#
public static AudioServerInstance Singleton { get; }

Методы57

AddBusvoid
# AddBus
C#
public static void AddBus(int atPosition = -1);

Добавляет шину в at_position.

Параметры
ИмяТипПо умолчанию
atPositionint-1
AddBusEffectvoid
# AddBusEffect
C#
public static void AddBusEffect(int busIdx, AudioEffect effect, int atPosition = -1);

Добавляет эффект AudioEffect к шине bus_idx в at_position.

Параметры
ИмяТипПо умолчанию
busIdxint—
effectAudioEffect—
atPositionint-1
GenerateBusLayoutAudioBusLayout
# GenerateBusLayout
C#
public static AudioBusLayout GenerateBusLayout();

Генерирует AudioBusLayout с использованием доступных шин и эффектов.

Возвращает AudioBusLayout
GetBusChannelsint
# GetBusChannels
C#
public static int GetBusChannels(int busIdx);

Возвращает количество каналов шины по индексу bus_idx.

Параметры
ИмяТипПо умолчанию
busIdxint—
Возвращает int
GetBusCountint
# GetBusCount
C#
public static int GetBusCount();
Возвращает int
GetBusEffectAudioEffect
# GetBusEffect
C#
public static AudioEffect GetBusEffect(int busIdx, int effectIdx);

Возвращает AudioEffect в позиции effect_idx на шине bus_idx.

Параметры
ИмяТипПо умолчанию
busIdxint—
effectIdxint—
Возвращает AudioEffect
GetBusEffectCountint
# GetBusEffectCount
C#
public static int GetBusEffectCount(int busIdx);

Возвращает количество эффектов на шине в bus_idx.

Параметры
ИмяТипПо умолчанию
busIdxint—
Возвращает int
GetBusEffectInstanceAudioEffectInstance
# GetBusEffectInstance
C#
public static AudioEffectInstance GetBusEffectInstance(int busIdx, int effectIdx, int channel = 0);

Возвращает AudioEffectInstance, назначенный заданным индексам шины и эффекта (и, возможно, канала).

Параметры
ИмяТипПо умолчанию
busIdxint—
effectIdxint—
channelint0
Возвращает AudioEffectInstance
GetBusIndexint
# GetBusIndex
C#
public static int GetBusIndex(StringName busName);

Возвращает текущий индекс шины по имени или -1, если её нет. После изменения layout ищите индекс заново; не храните его как стабильный идентификатор категории.

Параметры
ИмяТипПо умолчанию
busNameStringName—
Возвращает int
GetBusNamestring
# GetBusName
C#
public static string GetBusName(int busIdx);

Возвращает имя шины с индексом bus_idx.

Параметры
ИмяТипПо умолчанию
busIdxint—
Возвращает string
GetBusPeakVolumeLeftDbfloat
# GetBusPeakVolumeLeftDb
C#
public static float GetBusPeakVolumeLeftDb(int busIdx, int channel);

Возвращает пиковую громкость левого динамика с индексом шины bus_idx и индексом канала channel.

Параметры
ИмяТипПо умолчанию
busIdxint—
channelint—
Возвращает float
GetBusPeakVolumeRightDbfloat
# GetBusPeakVolumeRightDb
C#
public static float GetBusPeakVolumeRightDb(int busIdx, int channel);

Возвращает пиковую громкость правого динамика с индексом шины bus_idx и индексом канала channel.

Параметры
ИмяТипПо умолчанию
busIdxint—
channelint—
Возвращает float
GetBusSendStringName
# GetBusSend
C#
public static StringName GetBusSend(int busIdx);

Возвращает имя шины, на которую отправляет данные шина с индексом bus_idx.

Параметры
ИмяТипПо умолчанию
busIdxint—
Возвращает StringName
GetBusVolumeDbfloat
# GetBusVolumeDb
C#
public static float GetBusVolumeDb(int busIdx);

Возвращает громкость шины по индексу bus_idx в дБ.

Параметры
ИмяТипПо умолчанию
busIdxint—
Возвращает float
GetBusVolumeLinearfloat
# GetBusVolumeLinear
C#
public static float GetBusVolumeLinear(int busIdx);

Возвращает громкость шины по индексу bus_idx как линейное значение. Примечание: Возвращаемое значение эквивалентно результату @GlobalScope.db_to_linear на результате AudioServer.GetBusVolumeDb.

Параметры
ИмяТипПо умолчанию
busIdxint—
Возвращает float
GetDriverNamestring
# GetDriverName
C#
public static string GetDriverName();

Возвращает имя текущего аудиодрайвера. Значение по умолчанию обычно зависит от операционной системы, но может быть переопределено с помощью --audio-driver аргумента командной строки. --headless также автоматически устанавливает аудиодрайвер в Dummy. См. также ProjectSettings.audio/driver/driver.

Возвращает string
GetInputBufferLengthFramesint
# GetInputBufferLengthFrames
C#
public static int GetInputBufferLengthFrames();

Возвращает абсолютный размер буфера входного сигнала микрофона. Он устанавливается равным кратному значению задержки звука и может использоваться для оценки минимальной скорости, с которой необходимо получать кадры.

Возвращает int
GetInputDevicestring
# GetInputDevice
C#
public static string GetInputDevice();
Возвращает string
GetInputDeviceListstring[]
# GetInputDeviceList
C#
public static string[] GetInputDeviceList();

Возвращает имена всех аудиовходных устройств, обнаруженных в системе. Примечание: ProjectSettings.audio/driver/enable_input должен быть true для работы аудиовхода. См. также описание этого параметра для предупреждений, связанных с разрешениями и настройками конфиденциальности операционной системы.

Возвращает string[]
GetInputFramesVector2[]
# GetInputFrames
C#
public static Vector2[] GetInputFrames(int frames);

Возвращает Vector2[], содержащий ровно frames аудиосэмплов из внутреннего буфера микрофона, если он доступен; в противном случае возвращает пустой Vector2[]. Буфер заполняется со скоростью AudioServer.GetInputMixRate кадров в секунду, если AudioServer.SetInputDeviceActive успешно установлен в true. Сэмплы представляют собой знаковые значения PCM с плавающей запятой в диапазоне от -1 до 1.

Параметры
ИмяТипПо умолчанию
framesint—
Возвращает Vector2[]
GetInputFramesAvailableint
# GetInputFramesAvailable
C#
public static int GetInputFramesAvailable();

Возвращает количество кадров, доступных для чтения с помощью метода AudioServer.GetInputFrames.

Возвращает int
GetInputMixRatefloat
# GetInputMixRate
C#
public static float GetInputMixRate();

Возвращает частоту дискретизации на входе AudioServer.

Возвращает float
GetMixRatefloat
# GetMixRate
C#
public static float GetMixRate();

Возвращает частоту дискретизации на выходе AudioServer.

Возвращает float
GetOutputDevicestring
# GetOutputDevice
C#
public static string GetOutputDevice();
Возвращает string
GetOutputDeviceListstring[]
# GetOutputDeviceList
C#
public static string[] GetOutputDeviceList();

Возвращает имена всех устройств вывода звука, обнаруженных в системе.

Возвращает string[]
GetOutputLatencydouble
# GetOutputLatency
C#
public static double GetOutputLatency();

Возвращает эффективную задержку вывода аудиодрайвера. Она основана на ProjectSettings.audio/driver/output_latency, но точное возвращаемое значение будет отличаться в зависимости от операционной системы и аудиодрайвера. Примечание: Это может быть затратно; не рекомендуется вызывать AudioServer.GetOutputLatency каждый кадр.

Возвращает double
GetPlaybackSpeedScalefloat
# GetPlaybackSpeedScale
C#
public static float GetPlaybackSpeedScale();
Возвращает float
GetSpeakerModeAudioServer.SpeakerMode
# GetSpeakerMode
C#
public static AudioServer.SpeakerMode GetSpeakerMode();

Возвращает конфигурацию динамиков.

Возвращает AudioServer.SpeakerMode
GetTimeSinceLastMixdouble
# GetTimeSinceLastMix
C#
public static double GetTimeSinceLastMix();

Возвращает относительное время в секундах с момента последнего микса.

Возвращает double
GetTimeToNextMixdouble
# GetTimeToNextMix
C#
public static double GetTimeToNextMix();

Возвращает относительное время до следующего микса в секундах.

Возвращает double
IsBusBypassingEffectsbool
# IsBusBypassingEffects
C#
public static bool IsBusBypassingEffects(int busIdx);

Если true, шина с индексом bus_idx обходит эффекты.

Параметры
ИмяТипПо умолчанию
busIdxint—
Возвращает bool
IsBusEffectEnabledbool
# IsBusEffectEnabled
C#
public static bool IsBusEffectEnabled(int busIdx, int effectIdx);

Если true, эффект с индексом effect_idx на шине с индексом bus_idx включен.

Параметры
ИмяТипПо умолчанию
busIdxint—
effectIdxint—
Возвращает bool
IsBusMutebool
# IsBusMute
C#
public static bool IsBusMute(int busIdx);

Если true, шина с индексом bus_idx отключается.

Параметры
ИмяТипПо умолчанию
busIdxint—
Возвращает bool
IsBusSolobool
# IsBusSolo
C#
public static bool IsBusSolo(int busIdx);

Если true, шина с индексом bus_idx находится в одиночном режиме.

Параметры
ИмяТипПо умолчанию
busIdxint—
Возвращает bool
IsStreamRegisteredAsSamplebool
# IsStreamRegisteredAsSample
C#
public static bool IsStreamRegisteredAsSample(AudioStream stream);

Если true, поток регистрируется как образец. Движку не придется регистрировать его перед воспроизведением образца. Если false, поток придется регистрировать перед его воспроизведением. Чтобы предотвратить скачки задержек, зарегистрируйте поток как образец с помощью AudioServer.RegisterStreamAsSample.

Параметры
ИмяТипПо умолчанию
streamAudioStream—
Возвращает bool
Lockvoid
# Lock
C#
public static void Lock();

Блокирует основной цикл аудиодрайвера. Примечание: Не забудьте разблокировать его после этого.

MoveBusvoid
# MoveBus
C#
public static void MoveBus(int index, int toIndex);

Перемещает шину с индекса index на индекс to_index.

Параметры
ИмяТипПо умолчанию
indexint—
toIndexint—
RegisterStreamAsSamplevoid
# RegisterStreamAsSample
C#
public static void RegisterStreamAsSample(AudioStream stream);

Принудительно регистрирует поток как образец. Примечание: При вызове этого метода могут возникать скачки задержки, особенно в однопоточных сборках. Рекомендуется вызывать этот метод во время загрузки ресурсов, где скачок задержки может быть замаскирован, вместо регистрации образца непосредственно перед его воспроизведением.

Параметры
ИмяТипПо умолчанию
streamAudioStream—
RemoveBusvoid
# RemoveBus
C#
public static void RemoveBus(int index);

Удаляет шину с индексом index.

Параметры
ИмяТипПо умолчанию
indexint—
RemoveBusEffectvoid
# RemoveBusEffect
C#
public static void RemoveBusEffect(int busIdx, int effectIdx);

Удаляет эффект с индексом effect_idx из шины с индексом bus_idx.

Параметры
ИмяТипПо умолчанию
busIdxint—
effectIdxint—
SetBusBypassEffectsvoid
# SetBusBypassEffects
C#
public static void SetBusBypassEffects(int busIdx, bool enable);

Если true, шина с индексом bus_idx обходит эффекты.

Параметры
ИмяТипПо умолчанию
busIdxint—
enablebool—
SetBusCountvoid
# SetBusCount
C#
public static void SetBusCount(int amount);
Параметры
ИмяТипПо умолчанию
amountint—
SetBusEffectEnabledvoid
# SetBusEffectEnabled
C#
public static void SetBusEffectEnabled(int busIdx, int effectIdx, bool enabled);

Если true, эффект с индексом effect_idx на шине с индексом bus_idx включен.

Параметры
ИмяТипПо умолчанию
busIdxint—
effectIdxint—
enabledbool—
SetBusLayoutvoid
# SetBusLayout
C#
public static void SetBusLayout(AudioBusLayout busLayout);

Перезаписывает текущий используемый AudioBusLayout.

Параметры
ИмяТипПо умолчанию
busLayoutAudioBusLayout—
SetBusMutevoid
# SetBusMute
C#
public static void SetBusMute(int busIdx, bool enable);

Глушит или возвращает выход шины; не останавливает и не приостанавливает её источники. Эффекты данной шины находятся до mute, поэтому Capture в ней может продолжать получать данные.

Параметры
ИмяТипПо умолчанию
busIdxint—
enablebool—
SetBusNamevoid
# SetBusName
C#
public static void SetBusName(int busIdx, string name);

Устанавливает имя шины с индексом bus_idx на name.

Параметры
ИмяТипПо умолчанию
busIdxint—
namestring—
SetBusSendvoid
# SetBusSend
C#
public static void SetBusSend(int busIdx, StringName send);

Задаёт принимающую шину по имени. При обработке она должна быть левее отправляющей; отсутствующее имя или направление вправо/на себя фактически направляет сигнал в Master. Индекс 0 — Master, у него нет следующего send.

Параметры
ИмяТипПо умолчанию
busIdxint—
sendStringName—
SetBusSolovoid
# SetBusSolo
C#
public static void SetBusSolo(int busIdx, bool enable);

Если true, шина с индексом bus_idx находится в одиночном режиме.

Параметры
ИмяТипПо умолчанию
busIdxint—
enablebool—
SetBusVolumeDbvoid
# SetBusVolumeDb
C#
public static void SetBusVolumeDb(int busIdx, float volumeDb);

Задаёт усиление шины в дБ: 0 — единичный коэффициент, около -6.02 — половина амплитуды. Это не значение цифрового пика dBFS. Усиление применяется после эффектов шины, перед отправкой дальше. Для нуля пользовательского ползунка удобен mute.

Параметры
ИмяТипПо умолчанию
busIdxint—
volumeDbfloat—
SetBusVolumeLinearvoid
# SetBusVolumeLinear
C#
public static void SetBusVolumeLinear(int busIdx, float volumeLinear);

Устанавливает громкость как линейное значение шины с индексом bus_idx по volume_linear. Примечание: Использование этого метода эквивалентно вызову AudioServer.SetBusVolumeDb с результатом @GlobalScope.linear_to_db для значения.

Параметры
ИмяТипПо умолчанию
busIdxint—
volumeLinearfloat—
SetEnableTaggingUsedAudioStreamsvoid
# SetEnableTaggingUsedAudioStreams
C#
public static void SetEnableTaggingUsedAudioStreams(bool enable);

Если установлено значение true, все экземпляры AudioStreamPlayback будут вызывать AudioStreamPlayback._TagUsedStreams на каждом шаге микширования. Примечание: Это включено по умолчанию в редакторе, так как используется плагинами редактора для предпросмотра аудиопотока.

Параметры
ИмяТипПо умолчанию
enablebool—
SetInputDevicevoid
# SetInputDevice
C#
public static void SetInputDevice(string name);
Параметры
ИмяТипПо умолчанию
namestring—
SetInputDeviceActiveError
# SetInputDeviceActive
C#
public static Error SetInputDeviceActive(bool active);

Если active равно true, запускает поток входного сигнала с микрофона, указанный в AudioServer.InputDevice, или возвращает ошибку в случае сбоя. Если active равно false, останавливает поток входного сигнала, если он запущен.

Параметры
ИмяТипПо умолчанию
activebool—
Возвращает Error
SetOutputDevicevoid
# SetOutputDevice
C#
public static void SetOutputDevice(string name);
Параметры
ИмяТипПо умолчанию
namestring—
SetPlaybackSpeedScalevoid
# SetPlaybackSpeedScale
C#
public static void SetPlaybackSpeedScale(float scale);
Параметры
ИмяТипПо умолчанию
scalefloat—
SwapBusEffectsvoid
# SwapBusEffects
C#
public static void SwapBusEffects(int busIdx, int effectIdx, int byEffectIdx);

Меняет местами два эффекта в шине bus_idx.

Параметры
ИмяТипПо умолчанию
busIdxint—
effectIdxint—
byEffectIdxint—
Unlockvoid
# Unlock
C#
public static void Unlock();

Разблокирует основной цикл аудиодрайвера. (После блокировки его всегда следует разблокировать.)

Сигналы и события2

BusLayoutChangedСобытие
# BusLayoutChanged
C#
public static event Action BusLayoutChanged;

Издается при добавлении, удалении или перемещении аудиошины.

BusRenamedСобытие
# BusRenamed
C#
public static event AudioServer.BusRenamedEventHandler BusRenamed;

Вызывается, когда аудиошина в bus_index переименовывается из old_name в new_name.

Параметры обработчика
ИмяТипПо умолчанию
busIndexlong—
oldNameStringName—
newNameStringName—

AudioServer.PlaybackType

ЗначениеОписание
Default = 0

Воспроизведение будет считаться воспроизведением типа, объявленного в ProjectSettings.audio/general/default_playback_type.

Max = 3

Представляет размер перечисления AudioServer.PlaybackType.

Sample = 2

Принудительно считать воспроизведение образцом. Это может обеспечить меньшую задержку и более стабильное воспроизведение (с меньшим риском потрескивания звука) за счет меньшей гибкости. Примечание: В настоящее время поддерживается только на веб-платформе. Примечание: AudioEffect-ы не поддерживаются, когда воспроизведение рассматривается как образец.

Stream = 1

Принудительно рассматривать воспроизведение как поток.

AudioServer.SpeakerMode

ЗначениеОписание
ModeStereo = 0

Обнаруживает двух или менее говорящих.

Surround31 = 1

Обнаружена конфигурация объемного звучания 3.1.

Surround51 = 2

Обнаружена 5.1-канальная система объемного звучания.

Surround71 = 3

Обнаружена конфигурация объемного звучания 7.1 каналов.

Документация Reckfell EngineНаверх ↑
БЫСТРЫЙ ПЕРЕХОДНачало работыEntity и иерархияC# & .NET 10Сцены и префабы
Руководства и полный API Reckfell K
reckfellENGINE
RECKFELL ACCOUNT

Вход в аккаунт

Войдите в аккаунт Reckfell.

Один аккаунт для всей платформы Reckfell.