AudioStreamPlayer
Воспроизводит звук без учёта положения в мире.
AudioStreamPlayer подходит для музыки и интерфейса. Назначьте ресурс Stream, выберите Bus и вызовите Play() после входа плеера в дерево. Один ресурс может использоваться несколькими плеерами с отдельными позициями и паузами.
В режиме Stream новый Play создаёт голос; MaxPolyphony ограничивает число голосов, вытесняя старый. Пауза делает IsPlaying() ложным, но сохраняет HasStreamPlayback(). Finished не гарантирует, что все голоса закончились. Для положения источника используйте 2D/3D-плеер.
Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.
Конструкторы1
AudioStreamPlayerКонструктор
public AudioStreamPlayer();Свойства11
AutoplayСвойство
public bool Autoplay { get; set; }Если true, этот узел вызывает AudioStreamPlayer.Play при входе в дерево.
BusСвойство
public StringName Bus { get; set; }Имя принимающей шины. Если имя отсутствует в layout, сигнал направляется в Master. Проверяйте GetBusIndex(name) при подготовке проекта, чтобы опечатка не скрывалась этим fallback.
MaxPolyphonyСвойство
public int MaxPolyphony { get; set; }Максимальное число одновременных голосов этого плеера. Новый Play при превышении лимита вытесняет самый старый голос. Используйте положительное значение; для одного управляемого музыкального потока задайте 1.
MixTargetСвойство
public AudioStreamPlayer.MixTargetEnum MixTarget { get; set; }Каналы микширования. Не оказывает никакого эффекта, если обнаружено два динамика или меньше (см. AudioServer.SpeakerMode).
PitchScaleСвойство
public float PitchScale { get; set; }Положительный множитель скорости и высоты. Значение 2 повышает высоту и ускоряет обычный поток; это не независимый time stretch. Ноль не является паузой: используйте StreamPaused.
PlaybackTypeСвойство
public AudioServer.PlaybackType PlaybackType { get; set; }Тип воспроизведения потокового проигрывателя. Если установлено значение, отличное от значения по умолчанию, будет принудительно выбран этот тип воспроизведения.
PlayingСвойство
public bool Playing { get; set; }Если true, этот узел воспроизводит звуки. Установка этого свойства имеет тот же эффект, что и AudioStreamPlayer.Play и AudioStreamPlayer.Stop.
StreamСвойство
public AudioStream Stream { get; set; }Ресурс AudioStream для воспроизведения. Установка этого свойства останавливает все воспроизводимые в данный момент звуки. Если оставить пустым, AudioStreamPlayer не будет работать.
StreamPausedСвойство
public bool StreamPaused { get; set; }Приостанавливает существующие голоса или возобновляет их. Без голосов предварительная команда не сохраняется. В режиме Stream пауза делает IsPlaying() ложным, сохраняя HasStreamPlayback().
VolumeDbСвойство
public float VolumeDb { get; set; }Громкость звука в децибелах. Это смещение громкости AudioStreamPlayer.Stream.
Примечание: Для преобразования между децибелами и линейной энергией (как это делают большинство ползунков громкости) используйте AudioStreamPlayer.VolumeLinear или @GlobalScope.db_to_linear и @GlobalScope.linear_to_db.
VolumeLinearСвойство
public float VolumeLinear { get; set; }Громкость звука, как линейное значение.
Примечание: Этот член изменяет AudioStreamPlayer.VolumeDb для удобства. Возвращаемое значение эквивалентно результату @GlobalScope.db_to_linear для AudioStreamPlayer.VolumeDb. Установка этого члена эквивалентна установке AudioStreamPlayer.VolumeDb на результат @GlobalScope.linear_to_db для значения.
Методы28
GetBusStringName
public StringName GetBus();StringNameGetMaxPolyphonyint
public int GetMaxPolyphony();intGetMixTargetAudioStreamPlayer.MixTargetEnum
public AudioStreamPlayer.MixTargetEnum GetMixTarget();AudioStreamPlayer.MixTargetEnumGetPitchScalefloat
public float GetPitchScale();floatGetPlaybackPositionfloat
public float GetPlaybackPosition();Возвращает позицию последнего созданного голоса в секундах, а не общее время всех голосов. Между смешиваниями значение может меняться ступенчато. Для одного потока со скоростью 1 оценку можно уточнить временем после последнего mix; паузу, перемотку и задержку вывода учитывайте отдельно.
floatGetPlaybackTypeAudioServer.PlaybackType
public AudioServer.PlaybackType GetPlaybackType();AudioServer.PlaybackTypeGetStreamAudioStream
public AudioStream GetStream();AudioStreamGetStreamPausedbool
public bool GetStreamPaused();boolGetStreamPlaybackAudioStreamPlayback
public AudioStreamPlayback GetStreamPlayback();Возвращает объект последнего созданного воспроизведения. До вызова проверяйте HasStreamPlayback(); без голосов метод сообщает ошибку. Сохранённая ссылка на декодер не доказывает, что голос всё ещё подключён к плееру/микшеру.
AudioStreamPlaybackGetVolumeDbfloat
public float GetVolumeDb();floatGetVolumeLinearfloat
public float GetVolumeLinear();floatHasStreamPlaybackbool
public bool HasStreamPlayback();Проверяет, хранит ли плеер объекты воспроизведения, включая приостановленные. Это не признак слышимого сигнала: mute, расстояние или пауза могут давать тишину.
boolIsAutoplayEnabledbool
public bool IsAutoplayEnabled();boolIsPlayingbool
public bool IsPlaying();В режиме Stream возвращает true для активно играющего голоса. На паузе false; для наличия сохранённого воспроизведения проверяйте HasStreamPlayback() или StreamPaused. Не отсекайте этим методом команду возобновления.
boolPlayvoid
public void Play(float fromPosition = 0f);Создаёт воспроизведение назначенного Stream с указанной позиции в секундах; требует плеер в дереве. Повторный вызов добавляет голос в пределах MaxPolyphony, а не обязательно возобновляет старый. Для продолжения используйте StreamPaused = false.
| Имя | Тип | По умолчанию |
|---|---|---|
fromPosition | float | 0f |
Seekvoid
public void Seek(float toPosition);Перезапускает плеер с заданной позиции в секундах только при активном воспроизведении. Останавливает прежние голоса и запускает новый с позиции. В режиме Stream на паузе или остановке ничего не делает. Для перемотки с сохранением паузы явно сохраните флаг, вызовите Stop(), Play(position) и восстановите StreamPaused.
| Имя | Тип | По умолчанию |
|---|---|---|
toPosition | float | — |
SetAutoplayvoid
public void SetAutoplay(bool enable);| Имя | Тип | По умолчанию |
|---|---|---|
enable | bool | — |
SetBusvoid
public void SetBus(StringName bus);| Имя | Тип | По умолчанию |
|---|---|---|
bus | StringName | — |
SetMaxPolyphonyvoid
public void SetMaxPolyphony(int maxPolyphony);| Имя | Тип | По умолчанию |
|---|---|---|
maxPolyphony | int | — |
SetMixTargetvoid
public void SetMixTarget(AudioStreamPlayer.MixTargetEnum mixTarget);| Имя | Тип | По умолчанию |
|---|---|---|
mixTarget | AudioStreamPlayer.MixTargetEnum | — |
SetPitchScalevoid
public void SetPitchScale(float pitchScale);| Имя | Тип | По умолчанию |
|---|---|---|
pitchScale | float | — |
SetPlaybackTypevoid
public void SetPlaybackType(AudioServer.PlaybackType playbackType);| Имя | Тип | По умолчанию |
|---|---|---|
playbackType | AudioServer.PlaybackType | — |
SetPlayingvoid
public void SetPlaying(bool enable);| Имя | Тип | По умолчанию |
|---|---|---|
enable | bool | — |
SetStreamvoid
public void SetStream(AudioStream stream);| Имя | Тип | По умолчанию |
|---|---|---|
stream | AudioStream | — |
SetStreamPausedvoid
public void SetStreamPaused(bool pause);| Имя | Тип | По умолчанию |
|---|---|---|
pause | bool | — |
SetVolumeDbvoid
public void SetVolumeDb(float volumeDb);| Имя | Тип | По умолчанию |
|---|---|---|
volumeDb | float | — |
SetVolumeLinearvoid
public void SetVolumeLinear(float volumeLinear);| Имя | Тип | По умолчанию |
|---|---|---|
volumeLinear | float | — |
Stopvoid
public void Stop();Останавливает все голоса этого плеера и очищает их список. Не выдаёт Finished. Для нового запуска используйте Play(); это отличается от возобновления паузы.
Сигналы и события1
FinishedСобытие
public event Action Finished;Выдаётся, когда при обновлении удалён один или несколько естественно завершившихся голосов. Другие голоса могут ещё играть. Stop() и вытеснение по лимиту не означают естественное завершение; цикл не выдаёт этот сигнал на каждом круге.
AudioStreamPlayer.MixTargetEnum
| Значение | Описание |
|---|---|
Center = 2 | Звук будет воспроизводиться на втором канале, который обычно является центральным. |
Stereo = 0 | Звук будет воспроизводиться только на первом канале. Это значение по умолчанию. |
Surround = 1 | Звук будет воспроизводиться на всех каналах объемного звучания. |