AudioStreamPlayer

继承: Item < Object

用于音频播放的节点。

描述

AudioStreamPlayer节点以非位置方式播放音频流。它非常适合用户界面、菜单或背景音乐。

要使用此节点,需要将stream设置为有效的AudioStream资源。同时播放多个声音也支持,参见max_polyphony

如果您需要在特定位置播放音频,请改用AudioPlayer

属性

方法


信号

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 🔗

混合目标通道,作为MixTarget常量之一。当检测到两个或更少的扬声器时没有影响(请参阅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将恢复所有声音。

注意:此属性在退出或进入树时自动更改,或者此节点暂停(参见Item.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,返回值等价于volume_db@GlobalScope.db_to_linear()的结果,设置此成员等价于设置volume_db为某个值上@GlobalScope.linear_to_db()的结果。


方法说明

float get_playback_position() 🔗

返回最新声音在AudioStream中的位置,以秒为单位。如果没有声音播放,则返回0.0

注意:位置并不总是准确的,因为AudioServer不会在每个处理的帧中混合音频。要获得更准确的结果,请将AudioServer.get_time_since_last_mix()添加到返回的位置。

注意:如果streamAudioStreamInteractive,则此方法始终返回0.0,因为它可以同时播放多个剪辑。


AudioStreamPlayback get_stream_playback() 🔗

返回此节点的最新AudioStreamPlayback,通常是play()最近创建的。如果没有播放声音,则此方法失败并返回空播放。


bool has_stream_playback() 🔗

如果任何声音处于活动状态,则返回true,即使stream_paused设置为true。另请参阅playingget_stream_playback()


void play(from_position: float = 0.0) 🔗

从头开始播放声音,或以秒为单位播放给定的from_position


void seek(to_position: float) 🔗

以秒为单位,从给定的to_position重新开始所有要播放的声音。如果没有声音播放,则不执行任何操作。


void stop() 🔗

停止来自此节点的所有声音。