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.

AudioStreamPlayback

繼承: RefCounted < Object

被繼承: AudioStreamPlaybackInteractive, AudioStreamPlaybackPlaylist, AudioStreamPlaybackPolyphonic, AudioStreamPlaybackResampled, AudioStreamPlaybackSynchronized

用於播放音訊的元類。

說明

可播放、循環及暫停音訊。使用方式請參閱 AudioStreamAudioStreamOggVorbis

教學

方法

int

_get_loop_count() virtual const

Variant

_get_parameter(name: StringName) virtual const

float

_get_playback_position() virtual required const

bool

_is_playing() virtual required const

int

_mix(buffer: AudioFrame*, rate_scale: float, frames: int) virtual required

void

_seek(position: float) virtual

void

_set_parameter(name: StringName, value: Variant) virtual

void

_start(from_pos: float) virtual required

void

_stop() virtual required

void

_tag_used_streams() virtual

int

get_loop_count() const

float

get_playback_position() const

AudioSamplePlayback

get_sample_playback() const

bool

is_playing() const

PackedVector2Array

mix_audio(rate_scale: float, frames: int)

void

seek(time: float = 0.0)

void

set_sample_playback(playback_sample: AudioSamplePlayback)

void

start(from_pos: float = 0.0)

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 required const 🔗

可覆寫的方法。應回傳音訊流目前的播放進度(秒)。


bool _is_playing() virtual required 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 required 🔗

重寫此方法以自訂播放自指定位置開始(例如呼叫 AudioStreamPlayer.play())時的行為。


void _stop() virtual required 🔗

重寫此方法以自訂停止播放(例如呼叫 AudioStreamPlayer.stop())時的行為。


void _tag_used_streams() virtual 🔗

可覆寫的方法。當播放啟動且 AudioServer.set_enable_tagging_used_audio_streams()true 時,每次混音都會呼叫。編輯器外掛可透過此方法標記音訊流當前位置並於預覽中顯示。


int get_loop_count() const 🔗

回傳此串流已循環的次數。


float get_playback_position() const 🔗

回傳串流目前的位置(秒)。


AudioSamplePlayback get_sample_playback() const 🔗

實驗性: 此方法可能在未來版本中變更或移除。

回傳與此 AudioStreamPlayback 關聯、用於播放此串流取樣的 AudioSamplePlayback


bool is_playing() const 🔗

若串流正在播放則回傳 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() 🔗

停止串流播放。