AudioStreamPlayer

Наследует: Node < Object

Узел для воспроизведения звука.

Описание

Узел AudioStreamPlayer воспроизводит аудиопоток непозиционно. Он идеально подходит для пользовательских интерфейсов, меню или фоновой музыки.

Чтобы использовать этот узел, stream необходимо установить на допустимый ресурс AudioStream. Также поддерживается воспроизведение более одного звука одновременно, см. max_polyphony.

Если вам нужно воспроизвести звук в определенной позиции, используйте вместо этого AudioStreamPlayer2D или AudioStreamPlayer3D.

Обучающие материалы

Свойства

bool

autoplay

false

StringName

bus

&"Master"

int

max_polyphony

1

MixTarget

mix_target

0

float

pitch_scale

1.0

PlaybackType

playback_type

0

bool

playing

false

AudioStream

stream

bool

stream_paused

false

float

volume_db

0.0

float

volume_linear

Методы

float

get_playback_position()

AudioStreamPlayback

get_stream_playback()

bool

has_stream_playback()

void

play(from_position: float = 0.0)

void

seek(to_position: float)

void

stop()


Сигналы

finished() 🔗

Выдается, когда звук заканчивается без прерываний. Этот сигнал не выдается при вызове stop() или при выходе из дерева во время воспроизведения звуков.


Перечисления

enum MixTarget: 🔗

MixTarget MIX_TARGET_STEREO = 0

Звук будет воспроизводиться только на первом канале. Это значение по умолчанию.

MixTarget MIX_TARGET_SURROUND = 1

Звук будет воспроизводиться на всех каналах объемного звучания.

MixTarget MIX_TARGET_CENTER = 2

Звук будет воспроизводиться на втором канале, который обычно является центральным.


Описания свойств

bool autoplay = false 🔗

  • void set_autoplay(value: bool)

  • bool is_autoplay_enabled()

Если true, этот узел вызывает play() при входе в дерево.


StringName bus = &"Master" 🔗

Имя целевой шины. Все звуки из этого узла будут воспроизводиться на этой шине.

Примечание: Во время выполнения, если шины с указанным именем не существует, все звуки будут возвращаться на "Master". См. также AudioServer.get_bus_name().


int max_polyphony = 1 🔗

  • void set_max_polyphony(value: int)

  • int get_max_polyphony()

Максимальное количество звуков, которые этот узел может воспроизводить одновременно. Вызов play() после достижения этого значения отсечет самые старые звуки.


MixTarget mix_target = 0 🔗

Каналы микширования. Не оказывает никакого эффекта, если обнаружено два динамика или меньше (см. SpeakerMode).


float pitch_scale = 1.0 🔗

  • void set_pitch_scale(value: float)

  • float get_pitch_scale()

Высота и темп аудио, как множитель частоты дискретизации stream. Значение 2.0 удваивает высоту аудио, а значение 0.5 уменьшает высоту вдвое.


PlaybackType playback_type = 0 🔗

Экспериментальное: Это свойство может быть изменено или удалено в будущих версиях.

Тип воспроизведения потокового проигрывателя. Если установлено значение, отличное от значения по умолчанию, будет принудительно выбран этот тип воспроизведения.


bool playing = false 🔗

  • void set_playing(value: bool)

  • bool is_playing()

Если true, этот узел воспроизводит звуки. Установка этого свойства имеет тот же эффект, что и play() и stop().


AudioStream stream 🔗

Ресурс AudioStream для воспроизведения. Установка этого свойства останавливает все воспроизводимые в данный момент звуки. Если оставить пустым, AudioStreamPlayer не будет работать.


bool stream_paused = false 🔗

  • void set_stream_paused(value: bool)

  • bool get_stream_paused()

Если true, звуки приостанавливаются. Установка stream_paused в false возобновляет все звуки.

Примечание: Это свойство автоматически изменяется при выходе или входе в дерево, или этот узел приостанавливается (см. Node.process_mode).


float volume_db = 0.0 🔗

  • void set_volume_db(value: float)

  • float get_volume_db()

Громкость звука в децибелах. Это смещение громкости stream.

Примечание: Для преобразования между децибелами и линейной энергией (как это делают большинство ползунков громкости) используйте volume_linear или @GlobalScope.db_to_linear() и @GlobalScope.linear_to_db().


float volume_linear 🔗

  • void set_volume_linear(value: float)

  • float get_volume_linear()

Громкость звука, как линейное значение.

Примечание: Этот член изменяет volume_db для удобства. Возвращаемое значение эквивалентно результату @GlobalScope.db_to_linear() для volume_db. Установка этого члена эквивалентна установке volume_db на результат @GlobalScope.linear_to_db() для значения.


Описания метода

float get_playback_position() 🔗

Возвращает позицию в AudioStream последнего звука в секундах. Возвращает 0.0, если звуки не воспроизводятся.

Примечание: Позиция не всегда точна, так как AudioServer не микширует звук в каждом обработанном кадре. Чтобы получить более точные результаты, добавьте AudioServer.get_time_since_last_mix() к возвращаемой позиции.

Примечание: Этот метод всегда возвращает 0.0, если stream является AudioStreamInteractive, так как он может воспроизводить несколько клипов одновременно.


AudioStreamPlayback get_stream_playback() 🔗

Возвращает последний AudioStreamPlayback этого узла, обычно последний созданный play(). Если звуки не воспроизводятся, этот метод завершается ошибкой и возвращает пустое воспроизведение.


bool has_stream_playback() 🔗

Возвращает true, если какой-либо звук активен, даже если stream_paused установлен в true. См. также playing и get_stream_playback().


void play(from_position: float = 0.0) 🔗

Воспроизводит звук с начала или с указанного from_position в секундах.


void seek(to_position: float) 🔗

Перезапускает все звуки, которые должны быть воспроизведены с указанного to_position, в секундах. Ничего не делает, если звуки не воспроизводятся.


void stop() 🔗

Останавливает все звуки из этого узла.