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 required 🔗
重寫此方法以自訂混音行為,即便播放未啟動也會呼叫。
注意: 在 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 中,每個元素包含該影格左右聲道的音量。
注意: 實際回傳的影格數可能少於要求值,請使用回傳陣列的長度做後續處理。
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() 🔗
停止串流播放。