reckfellENGINE

AudioStreamPlayer

Воспроизводит звук без учёта положения в мире.

На этой странице
class AudioStreamPlayerReckfellSharpНаследует Entity

AudioStreamPlayer подходит для музыки и интерфейса. Назначьте ресурс Stream, выберите Bus и вызовите Play() после входа плеера в дерево. Один ресурс может использоваться несколькими плеерами с отдельными позициями и паузами.

В режиме Stream новый Play создаёт голос; MaxPolyphony ограничивает число голосов, вытесняя старый. Пауза делает IsPlaying() ложным, но сохраняет HasStreamPlayback(). Finished не гарантирует, что все голоса закончились. Для положения источника используйте 2D/3D-плеер.

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

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

Конструкторы1

AudioStreamPlayerКонструктор
# AudioStreamPlayer
C#
public AudioStreamPlayer();

Свойства11

AutoplayСвойство
# Autoplay
C#
public bool Autoplay { get; set; }

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

BusСвойство
# Bus
C#
public StringName Bus { get; set; }

Имя принимающей шины. Если имя отсутствует в layout, сигнал направляется в Master. Проверяйте GetBusIndex(name) при подготовке проекта, чтобы опечатка не скрывалась этим fallback.

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

Максимальное число одновременных голосов этого плеера. Новый Play при превышении лимита вытесняет самый старый голос. Используйте положительное значение; для одного управляемого музыкального потока задайте 1.

MixTargetСвойство
# MixTarget
C#
public AudioStreamPlayer.MixTargetEnum MixTarget { get; set; }

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

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

Положительный множитель скорости и высоты. Значение 2 повышает высоту и ускоряет обычный поток; это не независимый time stretch. Ноль не является паузой: используйте StreamPaused.

PlaybackTypeСвойство
# PlaybackType
C#
public AudioServer.PlaybackType PlaybackType { get; set; }

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

PlayingСвойство
# Playing
C#
public bool Playing { get; set; }

Если true, этот узел воспроизводит звуки. Установка этого свойства имеет тот же эффект, что и AudioStreamPlayer.Play и AudioStreamPlayer.Stop.

StreamСвойство
# Stream
C#
public AudioStream Stream { get; set; }

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

StreamPausedСвойство
# StreamPaused
C#
public bool StreamPaused { get; set; }

Приостанавливает существующие голоса или возобновляет их. Без голосов предварительная команда не сохраняется. В режиме Stream пауза делает IsPlaying() ложным, сохраняя HasStreamPlayback().

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

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

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

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

Методы28

GetBusStringName
# GetBus
C#
public StringName GetBus();
Возвращает StringName
GetMaxPolyphonyint
# GetMaxPolyphony
C#
public int GetMaxPolyphony();
Возвращает int
GetMixTargetAudioStreamPlayer.MixTargetEnum
# GetMixTarget
C#
public AudioStreamPlayer.MixTargetEnum GetMixTarget();
Возвращает AudioStreamPlayer.MixTargetEnum
GetPitchScalefloat
# GetPitchScale
C#
public float GetPitchScale();
Возвращает float
GetPlaybackPositionfloat
# GetPlaybackPosition
C#
public float GetPlaybackPosition();

Возвращает позицию последнего созданного голоса в секундах, а не общее время всех голосов. Между смешиваниями значение может меняться ступенчато. Для одного потока со скоростью 1 оценку можно уточнить временем после последнего mix; паузу, перемотку и задержку вывода учитывайте отдельно.

Возвращает float
GetPlaybackTypeAudioServer.PlaybackType
# GetPlaybackType
C#
public AudioServer.PlaybackType GetPlaybackType();
Возвращает AudioServer.PlaybackType
GetStreamAudioStream
# GetStream
C#
public AudioStream GetStream();
Возвращает AudioStream
GetStreamPausedbool
# GetStreamPaused
C#
public bool GetStreamPaused();
Возвращает bool
GetStreamPlaybackAudioStreamPlayback
# GetStreamPlayback
C#
public AudioStreamPlayback GetStreamPlayback();

Возвращает объект последнего созданного воспроизведения. До вызова проверяйте HasStreamPlayback(); без голосов метод сообщает ошибку. Сохранённая ссылка на декодер не доказывает, что голос всё ещё подключён к плееру/микшеру.

Возвращает AudioStreamPlayback
GetVolumeDbfloat
# GetVolumeDb
C#
public float GetVolumeDb();
Возвращает float
GetVolumeLinearfloat
# GetVolumeLinear
C#
public float GetVolumeLinear();
Возвращает float
HasStreamPlaybackbool
# HasStreamPlayback
C#
public bool HasStreamPlayback();

Проверяет, хранит ли плеер объекты воспроизведения, включая приостановленные. Это не признак слышимого сигнала: mute, расстояние или пауза могут давать тишину.

Возвращает bool
IsAutoplayEnabledbool
# IsAutoplayEnabled
C#
public bool IsAutoplayEnabled();
Возвращает bool
IsPlayingbool
# IsPlaying
C#
public bool IsPlaying();

В режиме Stream возвращает true для активно играющего голоса. На паузе false; для наличия сохранённого воспроизведения проверяйте HasStreamPlayback() или StreamPaused. Не отсекайте этим методом команду возобновления.

Возвращает bool
Playvoid
# Play
C#
public void Play(float fromPosition = 0f);

Создаёт воспроизведение назначенного Stream с указанной позиции в секундах; требует плеер в дереве. Повторный вызов добавляет голос в пределах MaxPolyphony, а не обязательно возобновляет старый. Для продолжения используйте StreamPaused = false.

Параметры
ИмяТипПо умолчанию
fromPositionfloat0f
Seekvoid
# Seek
C#
public void Seek(float toPosition);

Перезапускает плеер с заданной позиции в секундах только при активном воспроизведении. Останавливает прежние голоса и запускает новый с позиции. В режиме Stream на паузе или остановке ничего не делает. Для перемотки с сохранением паузы явно сохраните флаг, вызовите Stop(), Play(position) и восстановите StreamPaused.

Параметры
ИмяТипПо умолчанию
toPositionfloat—
SetAutoplayvoid
# SetAutoplay
C#
public void SetAutoplay(bool enable);
Параметры
ИмяТипПо умолчанию
enablebool—
SetBusvoid
# SetBus
C#
public void SetBus(StringName bus);
Параметры
ИмяТипПо умолчанию
busStringName—
SetMaxPolyphonyvoid
# SetMaxPolyphony
C#
public void SetMaxPolyphony(int maxPolyphony);
Параметры
ИмяТипПо умолчанию
maxPolyphonyint—
SetMixTargetvoid
# SetMixTarget
C#
public void SetMixTarget(AudioStreamPlayer.MixTargetEnum mixTarget);
Параметры
ИмяТипПо умолчанию
mixTargetAudioStreamPlayer.MixTargetEnum—
SetPitchScalevoid
# SetPitchScale
C#
public void SetPitchScale(float pitchScale);
Параметры
ИмяТипПо умолчанию
pitchScalefloat—
SetPlaybackTypevoid
# SetPlaybackType
C#
public void SetPlaybackType(AudioServer.PlaybackType playbackType);
Параметры
ИмяТипПо умолчанию
playbackTypeAudioServer.PlaybackType—
SetPlayingvoid
# SetPlaying
C#
public void SetPlaying(bool enable);
Параметры
ИмяТипПо умолчанию
enablebool—
SetStreamvoid
# SetStream
C#
public void SetStream(AudioStream stream);
Параметры
ИмяТипПо умолчанию
streamAudioStream—
SetStreamPausedvoid
# SetStreamPaused
C#
public void SetStreamPaused(bool pause);
Параметры
ИмяТипПо умолчанию
pausebool—
SetVolumeDbvoid
# SetVolumeDb
C#
public void SetVolumeDb(float volumeDb);
Параметры
ИмяТипПо умолчанию
volumeDbfloat—
SetVolumeLinearvoid
# SetVolumeLinear
C#
public void SetVolumeLinear(float volumeLinear);
Параметры
ИмяТипПо умолчанию
volumeLinearfloat—
Stopvoid
# Stop
C#
public void Stop();

Останавливает все голоса этого плеера и очищает их список. Не выдаёт Finished. Для нового запуска используйте Play(); это отличается от возобновления паузы.

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

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

Выдаётся, когда при обновлении удалён один или несколько естественно завершившихся голосов. Другие голоса могут ещё играть. Stop() и вытеснение по лимиту не означают естественное завершение; цикл не выдаёт этот сигнал на каждом круге.

AudioStreamPlayer.MixTargetEnum

ЗначениеОписание
Center = 2

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

Stereo = 0

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

Surround = 1

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

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

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

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

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