Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
AudioStreamPlayback
继承: RefCounted < Object
派生: AudioStreamPlaybackInteractive, AudioStreamPlaybackPlaylist, AudioStreamPlaybackPolyphonic, AudioStreamPlaybackResampled, AudioStreamPlaybackSynchronized
播放音频的元类。
描述
可以播放、循环播放、暂停滚动播放音频。有关用法,请参阅 AudioStream 和 AudioStreamOggVorbis。
教程
方法
_get_loop_count() virtual const |
|
_get_parameter(name: StringName) virtual const |
|
_get_playback_position() virtual const |
|
_is_playing() virtual const |
|
_mix(buffer: |
|
void |
|
void |
_set_parameter(name: StringName, value: Variant) virtual |
void |
|
void |
_stop() virtual |
void |
_tag_used_streams() virtual |
get_loop_count() const |
|
get_playback_position() const |
|
get_sample_playback() const |
|
is_playing() const |
|
void |
|
void |
set_sample_playback(playback_sample: AudioSamplePlayback) |
void |
|
void |
stop() |
方法说明
int _get_loop_count() virtual const 🔗
可覆盖的方法。应该返回该音频流已经循环了多少次。大多数内置播放始终返回 0
。
Variant _get_parameter(name: StringName) virtual const 🔗
按名称返回播放参数的当前值(请参阅 AudioStream._get_parameter_list())。
float _get_playback_position() virtual const 🔗
可覆盖的方法。应返回音频流的当前进度,单位为秒。
bool _is_playing() virtual const 🔗
可覆盖的方法。如果该播放处于活动状态并正在播放其音频流,则应返回 true
。
int _mix(buffer: AudioFrame*
, rate_scale: float, frames: int) virtual 🔗
覆盖该方法以自定义音频流的混合方式。即使播放未激活,也会调用该方法。
注意:在 GDScript 或 C# 中覆盖该方法没有用。只有 GDExtension 可以利用它。
void _seek(position: float) virtual 🔗
覆盖该方法以自定义在给定的 position
处查找该音频流时发生的情况,例如通过调用 AudioStreamPlayer.seek()。
void _set_parameter(name: StringName, value: Variant) virtual 🔗
按名称设置播放参数的当前值(请参阅 AudioStream._get_parameter_list())。
void _start(from_pos: float) virtual 🔗
覆盖该方法以自定义在给定位置开始播放时发生的情况,例如通过调用 AudioStreamPlayer.play() 覆盖。
void _stop() virtual 🔗
覆盖该方法以自定义播放停止时发生的情况,例如通过调用 AudioStreamPlayer.stop() 覆盖。
void _tag_used_streams() virtual 🔗
可覆盖的方法。如果播放处于活动状态并且 AudioServer.set_enable_tagging_used_audio_streams() 已被设置为 true
,则每当混合音频流时调用。编辑器插件可以使用该方法以“标记”音频流中的当前位置并将其显示在预览中。
返回音频流已循环的次数。
float get_playback_position() const 🔗
返回音频流中的当前位置,单位为秒。
AudioSamplePlayback get_sample_playback() const 🔗
实验性: 未来版本中可能会修改或移除该方法。
返回与该 AudioStreamPlayback 相关联的、用于播放该流的音频样本的 AudioSamplePlayback,。
音频流正在播放时,返回 true
。
PackedVector2Array mix_audio(rate_scale: float, frames: int) 🔗
从当前位置开始,以 rate_scale
的速率混合音频流中最多 frames
帧音频,并推进流的位置。
返回一个PackedVector2Array,其中每个元素对应包含每个帧的左右声道音量。
注意:可能返回少于请求的帧数,请确定使用返回值的size。
void seek(time: float = 0.0) 🔗
跳转到音频流中给定的时间点 time
,单位为秒。
void set_sample_playback(playback_sample: AudioSamplePlayback) 🔗
实验性: 未来版本中可能会修改或移除该方法。
将 AudioSamplePlayback 与该 AudioStreamPlayback 关联以播放该流的音频样本。
void start(from_pos: float = 0.0) 🔗
从给定的位置 from_pos
开始播放音频流,单位为秒。
void stop() 🔗
停止音频流。