Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
AudioServer
Успадковує: Object
Інтерфейс сервера для низькорівневого аудіодоступу.
Опис
AudioServer — це низькорівневий інтерфейс сервера для доступу до аудіо. Він відповідає за створення зразків даних (аудіо, які можна відтворити), а також за їх відтворення через голосовий інтерфейс.
Посібники
Властивості
|
||
String |
|
|
String |
|
|
|
Методи
void |
|
void |
add_bus_effect(bus_idx: int, effect: AudioEffect, at_position: int = -1) |
generate_bus_layout() const |
|
get_bus_channels(bus_idx: int) const |
|
get_bus_effect(bus_idx: int, effect_idx: int) |
|
get_bus_effect_count(bus_idx: int) |
|
get_bus_effect_instance(bus_idx: int, effect_idx: int, channel: int = 0) |
|
get_bus_index(bus_name: StringName) const |
|
String |
get_bus_name(bus_idx: int) const |
get_bus_peak_volume_left_db(bus_idx: int, channel: int) const |
|
get_bus_peak_volume_right_db(bus_idx: int, channel: int) const |
|
StringName |
get_bus_send(bus_idx: int) const |
get_bus_volume_db(bus_idx: int) const |
|
get_bus_volume_linear(bus_idx: int) const |
|
String |
get_driver_name() const |
PackedStringArray |
|
PackedVector2Array |
get_input_frames(frames: int) |
get_input_mix_rate() const |
|
get_mix_rate() const |
|
PackedStringArray |
|
get_output_latency() const |
|
get_speaker_mode() const |
|
get_time_since_last_mix() const |
|
get_time_to_next_mix() const |
|
is_bus_bypassing_effects(bus_idx: int) const |
|
is_bus_effect_enabled(bus_idx: int, effect_idx: int) const |
|
is_bus_mute(bus_idx: int) const |
|
is_bus_solo(bus_idx: int) const |
|
void |
lock() |
void |
|
void |
register_stream_as_sample(stream: AudioStream) |
void |
remove_bus(index: int) |
void |
remove_bus_effect(bus_idx: int, effect_idx: int) |
void |
set_bus_bypass_effects(bus_idx: int, enable: bool) |
void |
set_bus_effect_enabled(bus_idx: int, effect_idx: int, enabled: bool) |
void |
set_bus_layout(bus_layout: AudioBusLayout) |
void |
set_bus_mute(bus_idx: int, enable: bool) |
void |
set_bus_name(bus_idx: int, name: String) |
void |
set_bus_send(bus_idx: int, send: StringName) |
void |
set_bus_solo(bus_idx: int, enable: bool) |
void |
set_bus_volume_db(bus_idx: int, volume_db: float) |
void |
set_bus_volume_linear(bus_idx: int, volume_linear: float) |
void |
|
set_input_device_active(active: bool) |
|
void |
swap_bus_effects(bus_idx: int, effect_idx: int, by_effect_idx: int) |
void |
unlock() |
Сигнали
bus_layout_changed() 🔗
Видається, коли аудіошина додається, видаляється або переміщується.
bus_renamed(bus_index: int, old_name: StringName, new_name: StringName) 🔗
Видається, коли аудіошина в bus_index перейменовується з old_name на new_name.
Переліки
enum SpeakerMode: 🔗
SpeakerMode SPEAKER_MODE_STEREO = 0
Виявлено два або менше динаміків.
SpeakerMode SPEAKER_SURROUND_31 = 1
Було виявлено налаштування 3.1-канального об’ємного звуку.
SpeakerMode SPEAKER_SURROUND_51 = 2
Виявлено налаштування 5.1-канального об’ємного звуку.
SpeakerMode SPEAKER_SURROUND_71 = 3
Було виявлено налаштування об’ємного звуку 7.1.
enum PlaybackType: 🔗
PlaybackType PLAYBACK_TYPE_DEFAULT = 0
Експериментальний: Ця константа може бути змінена або усунута у наступних версіях.
Відтворення вважатиметься типом, оголошеним у ProjectSettings.audio/general/default_playback_type.
PlaybackType PLAYBACK_TYPE_STREAM = 1
Експериментальний: Ця константа може бути змінена або усунута у наступних версіях.
Примусово розглядати відтворення як потік.
PlaybackType PLAYBACK_TYPE_SAMPLE = 2
Експериментальний: Ця константа може бути змінена або усунута у наступних версіях.
Примусово вважати відтворення зразком. Це може забезпечити меншу затримку та більш стабільне відтворення (з меншим ризиком потріскування звуку) ціною меншої гнучкості.
Примітка: наразі підтримується лише на веб-платформі.
Примітка: AudioEffect не підтримуються, якщо відтворення розглядається як семпл.
PlaybackType PLAYBACK_TYPE_MAX = 3
Експериментальний: Ця константа може бути змінена або усунута у наступних версіях.
Представляє розмір переліку PlaybackType.
Описи властивостей
Кількість доступних аудіо шин.
String input_device = "Default" 🔗
void set_input_device(value: String)
String get_input_device()
Назва поточного пристрою для аудіовходу (див. get_input_device_list()). У системах із декількома аудіовходами (такими як аналоговий, аудіо USB та HDMI) це можна використовувати для вибору пристрою введення аудіо. Значення "За замовчуванням" записуватиме аудіо на загальносистемний аудіовхід за замовчуванням. Якщо встановлено недійсне ім’я пристрою, значення буде повернено до "Default".
Примітка: ProjectSettings.audio/driver/enable_input має мати значення true, щоб аудіовхід працював. Перегляньте також опис цього параметра, щоб дізнатися про застереження щодо дозволів і налаштувань конфіденційності операційної системи.
String output_device = "Default" 🔗
void set_output_device(value: String)
String get_output_device()
Назва поточного пристрою для виведення аудіо (див. get_output_device_list()). У системах із декількома аудіовиходами (такими як аналоговий, аудіо USB та HDMI) це можна використовувати для вибору пристрою аудіовиходу. Значення "Default" відтворюватиме аудіо на загальносистемному аудіовиході за замовчуванням. Якщо встановлено недійсне ім’я пристрою, значення буде повернено до "Default".
float playback_speed_scale = 1.0 🔗
Масштабує швидкість відтворення аудіо (тобто, встановивши значення 0,5, аудіо відтворюватиметься з половинною швидкістю). Перегляньте також Engine.time_scale, щоб вплинути на загальну швидкість симуляції, яка не залежить від playback_speed_scale.
Описи методів
void add_bus(at_position: int = -1) 🔗
Додає шину в at_position.
void add_bus_effect(bus_idx: int, effect: AudioEffect, at_position: int = -1) 🔗
Додає ефект AudioEffect до шини bus_idx у at_position.
AudioBusLayout generate_bus_layout() const 🔗
Створює AudioBusLayout за допомогою доступних шин і ефектів.
int get_bus_channels(bus_idx: int) const 🔗
Повертає кількість каналів шини за індексом bus_idx.
AudioEffect get_bus_effect(bus_idx: int, effect_idx: int) 🔗
Повертає AudioEffect у позиції effect_idx у шині bus_idx.
int get_bus_effect_count(bus_idx: int) 🔗
Повертає кількість ефектів на шині в bus_idx.
AudioEffectInstance get_bus_effect_instance(bus_idx: int, effect_idx: int, channel: int = 0) 🔗
Повертає AudioEffectInstance, призначений вказаній шині та індексам ефекту (і додатково каналу).
int get_bus_index(bus_name: StringName) const 🔗
Повертає індекс шини з назвою bus_name. Повертає -1, якщо не існує шини з вказаною назвою.
String get_bus_name(bus_idx: int) const 🔗
Повертає назву шини з індексом bus_idx.
float get_bus_peak_volume_left_db(bus_idx: int, channel: int) const 🔗
Повертає пікову гучність лівого динаміка в індексі шини bus_idx та індексі каналу channel.
float get_bus_peak_volume_right_db(bus_idx: int, channel: int) const 🔗
Повертає пікову гучність правого динаміка в індексі шини bus_idx та індексі каналу channel.
StringName get_bus_send(bus_idx: int) const 🔗
Повертає назву шини, на яку надсилає шина з індексом bus_idx.
float get_bus_volume_db(bus_idx: int) const 🔗
Повертає гучність шини за індексом bus_idx у дБ.
float get_bus_volume_linear(bus_idx: int) const 🔗
Повертає гучність шини за індексом bus_idx як лінійне значення.
Примітка: Повернене значення еквівалентно результату @GlobalScope.db_to_linear() щодо результату get_bus_volume_db().
String get_driver_name() const 🔗
Повертає назву поточного звукового драйвера. Значення за замовчуванням зазвичай залежить від операційної системи, але його можна змінити за допомогою аргументу командного рядка --audio-driver. --headless також автоматично встановлює аудіодрайвер на Dummy. Дивіться також ProjectSettings.audio/driver/driver.
int get_input_buffer_length_frames() 🔗
Експериментальний: Цей метод може бути змінений або усунутий у наступних версіях.
Повертає абсолютний розмір вхідного буфера мікрофона. Він встановлюється як значення, кратне затримці звуку, і може бути використаний для оцінки мінімальної швидкості, з якою потрібно отримувати кадри.
PackedStringArray get_input_device_list() 🔗
Повертає назви всіх пристроїв аудіовведення, виявлених у системі.
Примітка: ProjectSettings.audio/driver/enable_input має мати значення true, щоб аудіовхід працював. Перегляньте також опис цього параметра, щоб дізнатися про застереження щодо дозволів і налаштувань конфіденційності операційної системи.
PackedVector2Array get_input_frames(frames: int) 🔗
Експериментальний: Цей метод може бути змінений або усунутий у наступних версіях.
Повертає PackedVector2Array, що містить рівно frames аудіосемплів з внутрішнього буфера мікрофона, якщо доступно, інакше повертає порожній PackedVector2Array.
Буфер заповнюється зі швидкістю get_input_mix_rate() кадрів на секунду, коли set_input_device_active() успішно встановлено на true.
Семпли – це значення PCM зі знаком у діапазоні від -1 до 1.
int get_input_frames_available() 🔗
Експериментальний: Цей метод може бути змінений або усунутий у наступних версіях.
Повертає кількість фреймів, доступних для зчитування за допомогою get_input_frames().
float get_input_mix_rate() const 🔗
Повертає частоту дискретизації на вході AudioServer.
Повертає частоту дискретизації на виході AudioServer.
PackedStringArray get_output_device_list() 🔗
Повертає назви всіх пристроїв аудіовиведення, виявлених у системі.
float get_output_latency() const 🔗
Повертає ефективну вихідну затримку звукового драйвера. Це базується на ProjectSettings.audio/driver/output_latency, але точне повернуте значення буде відрізнятися залежно від операційної системи та аудіодрайвера.
Примітка: Це може бути дорогим; не рекомендується викликати get_output_latency() кожного кадру.
SpeakerMode get_speaker_mode() const 🔗
Повертає конфігурацію динаміка.
float get_time_since_last_mix() const 🔗
Returns the relative time since the last mix occurred, in seconds.
float get_time_to_next_mix() const 🔗
Returns the relative time until the next mix occurs, in seconds.
bool is_bus_bypassing_effects(bus_idx: int) const 🔗
Якщо true, автобус в індексі bus_idx є охоплюючий ефект.
bool is_bus_effect_enabled(bus_idx: int, effect_idx: int) const 🔗
Якщо true, ефект за індексом effect_idx на шині за індексом bus_idx увімкнено.
bool is_bus_mute(bus_idx: int) const 🔗
Якщо true, автобус в індексі bus_idx приглушений.
bool is_bus_solo(bus_idx: int) const 🔗
Якщо true, автобус в індексі bus_idx знаходиться в сольному режимі.
bool is_stream_registered_as_sample(stream: AudioStream) 🔗
Експериментальний: Цей метод може бути змінений або усунутий у наступних версіях.
Якщо true, потік реєструється як зразок. Двигуну не доведеться реєструвати його перед відтворенням зразка.
Якщо
false, потік потрібно буде зареєструвати перед його відтворенням. Щоб запобігти стрибкам затримки, зареєструйте потік як вибірку за допомогою register_stream_as_sample().
void lock() 🔗
Блокує основний цикл аудіодрайвера.
Примітка: не забудьте розблокувати його після цього.
void move_bus(index: int, to_index: int) 🔗
Переміщує шину від індексу index до індексу to_index.
void register_stream_as_sample(stream: AudioStream) 🔗
Експериментальний: Цей метод може бути змінений або усунутий у наступних версіях.
Примусово реєструє потік як вибірку.
Примітка: Під час виклику цього методу можуть виникнути стрибки затримки, особливо в однопоточних збірках. Пропонується викликати цей метод під час завантаження активів, де стрибок затримки можна замаскувати, замість того, щоб реєструвати зразок безпосередньо перед його відтворенням.
Видаляє шину за індексом index.
void remove_bus_effect(bus_idx: int, effect_idx: int) 🔗
Видаляє ефект за індексом effect_idx із шини за індексом bus_idx.
void set_bus_bypass_effects(bus_idx: int, enable: bool) 🔗
Якщо true, автобус в індексі bus_idx є охоплюючий ефект.
void set_bus_effect_enabled(bus_idx: int, effect_idx: int, enabled: bool) 🔗
Якщо true, ефект за індексом effect_idx на шині за індексом bus_idx увімкнено.
void set_bus_layout(bus_layout: AudioBusLayout) 🔗
Перезаписує поточний AudioBusLayout.
void set_bus_mute(bus_idx: int, enable: bool) 🔗
Якщо true, автобус в індексі bus_idx приглушений.
void set_bus_name(bus_idx: int, name: String) 🔗
Встановлює назву шини за індексом bus_idx на name.
void set_bus_send(bus_idx: int, send: StringName) 🔗
Підключає вихід шини bus_idx до шини з назвою send.
void set_bus_solo(bus_idx: int, enable: bool) 🔗
Якщо true, автобус в індексі bus_idx знаходиться в сольному режимі.
void set_bus_volume_db(bus_idx: int, volume_db: float) 🔗
Встановлює гучність шини за індексом bus_idx на volume_db.
void set_bus_volume_linear(bus_idx: int, volume_linear: float) 🔗
Встановлює гучність як лінійне значення шини за індексом bus_idx до volume_linear.
Примітка. Використання цього методу еквівалентно виклику set_bus_volume_db() із результатом @GlobalScope.linear_to_db() для значення.
void set_enable_tagging_used_audio_streams(enable: bool) 🔗
Якщо встановлено значення true, усі екземпляри AudioStreamPlayback викликатимуть AudioStreamPlayback._tag_used_streams() на кожному кроці мікшування.
Примітка: це ввімкнено за умовчанням у редакторі, оскільки воно використовується плагінами редактора для попереднього перегляду аудіопотоку.
Error set_input_device_active(active: bool) 🔗
Експериментальний: Цей метод може бути змінений або усунутий у наступних версіях.
Якщо active має значення true, запускає вхідний потік мікрофона, визначений параметром input_device, або повертає помилку, якщо він не спрацював.
Якщо active має значення false, зупиняє вхідний потік, якщо він запущений.
void swap_bus_effects(bus_idx: int, effect_idx: int, by_effect_idx: int) 🔗
Міняє місцями положення двох ефектів у шині bus_idx.
void unlock() 🔗
Розблоковує основний цикл аудіодрайвера. (Після блокування його слід завжди розблокувати.)