AudioEffectCapture
繼承: AudioEffect < Resource < RefCounted < Object
即時擷取音訊匯流排的音訊。
說明
AudioEffectCapture 會將附加匯流排的所有音訊影格複製到其內部環形緩衝區。
程式可透過 get_buffer() 從該緩衝區取出影格並自行處理,例如擷取 AudioStreamMicrophone 資料、實作自訂效果或透過網路傳輸。從麥克風擷取時,樣本格式為雙聲道 32 位元浮點 PCM。
與 AudioEffectRecord 不同,本效果僅回傳原始樣本,不會封裝成 AudioStream。
教學
屬性
|
方法
can_get_buffer(frames: int) const |
|
void |
|
get_buffer(frames: int) |
|
get_buffer_length_frames() const |
|
get_discarded_frames() const |
|
get_frames_available() const |
|
get_pushed_frames() const |
屬性說明
內部環形緩衝區長度(秒)。若已初始化,重新設定將無效。
方法說明
bool can_get_buffer(frames: int) const 🔗
若內部環形緩衝區中至少有 frames 個影格可讀,則回傳 true。
void clear_buffer() 🔗
清空內部環形緩衝區。
注意: 擷取過程中呼叫此方法可能導致樣本遺失,播放時會出現爆音。
PackedVector2Array get_buffer(frames: int) 🔗
自環形緩衝區取出接下來的 frames 個音訊樣本。
若資料足夠,回傳含有精確 frames 個樣本的 PackedVector2Array;否則回傳空陣列。
樣本為範圍 -1~1 的有號浮點 PCM,若欲轉為 8 或 16 位整數,需自行縮放(例如 v = 0x7fff * samples[0].x)。
int get_buffer_length_frames() const 🔗
回傳內部環形緩衝區的總大小(影格數)。
int get_discarded_frames() const 🔗
回傳因緩衝區已滿而被丟棄的影格數。
int get_frames_available() const 🔗
回傳可透過 get_buffer() 讀取的影格數。
int get_pushed_frames() const 🔗
回傳自音訊匯流排寫入的影格總數。