AudioPlayer¶
在3D空间中播放位置声音。
描述¶
根据音频听众的相对位置播放带有位置音效的音频。位置效果包括距离衰减、方向性和多普勒效应。为了更加逼真,对远处的声音应用了低通滤波器。可以通过将attenuation_filter_cutoff_hz设置为20500来禁用此功能。
默认情况下,从摄像机位置听到音频。这可以通过向场景添加AudioListener节点并通过调用AudioListener.make_current()来启用它来更改。
另见AudioStreamPlayer播放非位置声音。
注意:隐藏AudioPlayer节点不会禁用其音频输出。要暂时禁用AudioPlayer的音频输出,请将volume_db设置为非常低的值,例如-100(人类听不到)。
属性¶
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
方法¶
void |
|
void |
|
void |
stop() |
信号¶
finished() 🔗
当音频停止播放时发出。
枚举¶
enum AttenuationModel: 🔗
AttenuationModel ATTENUATION_INVERSE_DISTANCE = 0
根据线性距离衰减响度。
AttenuationModel ATTENUATION_INVERSE_SQUARE_DISTANCE = 1
根据平方距离衰减响度。
AttenuationModel ATTENUATION_LOGARITHMIC = 2
根据对数距离衰减响度。
AttenuationModel ATTENUATION_DISABLED = 3
没有根据距离衰减响度。声音仍然会在位置上听到,不像AudioStreamPlayer。ATTENUATION_DISABLED可以与大于0.0的max_distance值组合,以实现固定在定义大小的球体上的线性衰减。
enum DopplerTracking: 🔗
DopplerTracking DOPPLER_TRACKING_DISABLED = 0
禁用多普勒跟踪。
DopplerTracking DOPPLER_TRACKING_IDLE_STEP = 1
在处理帧期间执行多普勒跟踪(参见Item.NOTIFICATION_INTERNAL_PROCESS)。
DopplerTracking DOPPLER_TRACKING_PHYSICS_STEP = 2
在物理帧期间执行多普勒跟踪(参见Item.NOTIFICATION_INTERNAL_PHYSICS_PROCESS)。
属性说明¶
确定哪些AreaTrigger层影响混响和音频总线效果的声音。区域可用于重定向AudioStream,以便它们在特定的音频总线中播放。如何使用它的一个示例是制作一个“水”区域,以便在水中播放的声音通过音频总线重定向,使它们听起来像在水下播放。
float attenuation_filter_cutoff_hz = 5000.0 🔗
衰减低通滤波器的截止频率,单位为Hz。高于此频率的声音比低于此频率的声音衰减更大。要禁用此效果,请将其设置为20500,因为此频率高于人类听力限制。
float attenuation_filter_db = -24.0 🔗
滤波器对响度的影响程度,以分贝为单位。
AttenuationModel attenuation_model = 0 🔗
void set_attenuation_model(value: AttenuationModel)
AttenuationModel get_attenuation_model()
决定音频是否应该随着距离线性、二次、对数地变得更安静,或者不受距离的影响,有效地禁用衰减。
如果true,则在将AudioStreamPlayer3D节点添加到场景树时播放音频。
StringName bus = &"Master" 🔗
void set_bus(value: StringName)
StringName get_bus()
播放这段音频的公共汽车。
注意:设置此属性时,请记住,不会执行验证以查看给定名称是否与现有总线匹配。这是因为设置此属性后可能会加载音频总线布局。如果在运行时无法解析此给定名称,它将回退到"Master"。
DopplerTracking doppler_tracking = 0 🔗
void set_doppler_tracking(value: DopplerTracking)
DopplerTracking get_doppler_tracking()
决定应该在哪一步计算多普勒效应。
float emission_angle_degrees = 45.0 🔗
音频到达听众的角度未衰减。
bool emission_angle_enabled = false 🔗
如果true,则应根据声音的方向衰减音频。
float emission_angle_filter_attenuation_db = -12.0 🔗
void set_emission_angle_filter_attenuation_db(value: float)
float get_emission_angle_filter_attenuation_db()
如果听众不在emission_angle_degrees并且设置了emission_angle_enabled,则使用衰减因子,以分贝为单位。
设置声音水平的绝对最大值,以分贝为单位。
声音再也听不到的距离。只有设置为大于0.0的值时才会产生影响。max_distance与unit_size协同工作。然而,与unit_size的行为取决于attenuation_model不同,max_distance总是以线性方式工作。这可以用来防止AudioPlayer在听众很远的时候需要音频混合,从而节省CPU资源。
此节点可以同时播放的最大声音数。达到此值后播放其他声音将切断最旧的声音。
float panning_strength = 1.0 🔗
通过将基数ProjectSettings.audio/general/3d_panning_strength乘以此因子来缩放此节点的平移强度。较高的值将比较低的值更显着地从左到右平移音频。
音频的音高和节奏,作为音频样本采样率的乘数。
PlaybackType playback_type = 0 🔗
void set_playback_type(value: PlaybackType)
PlaybackType get_playback_type()
实验性: 未来版本中可能会修改或移除该属性。
流播放器的播放类型。如果设置为默认值以外,它将强制该播放类型。
如果true,则音频正在播放或正在排队播放(参见play())。
AudioStream stream 🔗
void set_stream(value: AudioStream)
AudioStream get_stream()
要播放的AudioStream资源。
如果true,则播放暂停。您可以通过将stream_paused设置为false来恢复它。
衰减效应的因素。更高的值使声音在更远的距离内可以听到。
衰减前的基本声级,以分贝为单位。
衰减前的基础声级,作为线性值。
注意:此成员为方便起见修改了volume_db,返回值等价于volume_db上@GlobalScope.db_to_linear()的结果,设置此成员等价于设置volume_db为某个值上@GlobalScope.linear_to_db()的结果。
方法说明¶
float get_playback_position() 🔗
返回AudioStream中的位置。
AudioStreamPlayback get_stream_playback() 🔗
返回与此AudioPlayer关联的AudioStreamPlayback对象。
返回AudioStreamPlayer是否可以返回AudioStreamPlayback对象。
void play(from_position: float = 0.0) 🔗
从给定位置from_position在下一个物理帧上播放音频。
void seek(to_position: float) 🔗
设置播放音频的位置(以秒为单位)。
void stop() 🔗
停止音频。