AudioStreamInteractive

Eredita: AudioStream < Resource < RefCounted < Object

Flusso audio in grado di riprodurre musica in modo interattivo, combinando i clip e una tabella di transizione.

Descrizione

This is an audio stream that can playback music interactively, combining clips and a transition table. Clips must be added first, and then the transition rules via the add_transition(). Additionally, this stream exports a property parameter to control the playback via AudioStreamPlayer, AudioStreamPlayer2D, or AudioStreamPlayer3D.

The way this is used is by filling a number of clips, then configuring the transition table. From there, clips are selected for playback and the music will smoothly go from the current to the new one while using the corresponding transition rule defined in the transition table.

Proprietà

int

clip_count

0

int

initial_clip

0

Metodi

void

add_transition(from_clip: int, to_clip: int, from_time: TransitionFromTime, to_time: TransitionToTime, fade_mode: FadeMode, fade_beats: float, use_filler_clip: bool = false, filler_clip: int = -1, hold_previous: bool = false)

void

erase_transition(from_clip: int, to_clip: int)

AutoAdvanceMode

get_clip_auto_advance(clip_index: int) const

int

get_clip_auto_advance_next_clip(clip_index: int) const

StringName

get_clip_name(clip_index: int) const

AudioStream

get_clip_stream(clip_index: int) const

float

get_transition_fade_beats(from_clip: int, to_clip: int) const

FadeMode

get_transition_fade_mode(from_clip: int, to_clip: int) const

int

get_transition_filler_clip(from_clip: int, to_clip: int) const

TransitionFromTime

get_transition_from_time(from_clip: int, to_clip: int) const

PackedInt32Array

get_transition_list() const

TransitionToTime

get_transition_to_time(from_clip: int, to_clip: int) const

bool

has_transition(from_clip: int, to_clip: int) const

bool

is_transition_holding_previous(from_clip: int, to_clip: int) const

bool

is_transition_using_filler_clip(from_clip: int, to_clip: int) const

void

set_clip_auto_advance(clip_index: int, mode: AutoAdvanceMode)

void

set_clip_auto_advance_next_clip(clip_index: int, auto_advance_next_clip: int)

void

set_clip_name(clip_index: int, name: StringName)

void

set_clip_stream(clip_index: int, stream: AudioStream)


Enumerazioni

enum TransitionFromTime: 🔗

TransitionFromTime TRANSITION_FROM_TIME_IMMEDIATE = 0

Inizia la transizione il prima possibile, non aspettando una posizione temporale specifica.

TransitionFromTime TRANSITION_FROM_TIME_NEXT_BEAT = 1

Passa quando la posizione di riproduzione della clip raggiunge il battito successivo.

TransitionFromTime TRANSITION_FROM_TIME_NEXT_BAR = 2

Passa quando la posizione di riproduzione della clip raggiunge la battuta successiva.

TransitionFromTime TRANSITION_FROM_TIME_END = 3

Passa al termine della riproduzione della clip attuale.


enum TransitionToTime: 🔗

TransitionToTime TRANSITION_TO_TIME_SAME_POSITION = 0

Passa alla stessa posizione nella clip di destinazione. Questo è utile quando entrambe le clip hanno esattamente la stessa lunghezza e la musica deve dissolversi tra di esse.

TransitionToTime TRANSITION_TO_TIME_START = 1

Passa all'inizio della clip di destinazione.


enum FadeMode: 🔗

FadeMode FADE_DISABLED = 0

Non applicare una dissolvenza per la transizione. È utile quando si passa dalla fine di una clip all'inizio di una clip, e ogni clip ha il suo inizio e fine.

FadeMode FADE_IN = 1

Applica una dissolvenza in entrata nella clip successiva e lascia che la clip attuale termini.

FadeMode FADE_OUT = 2

Applica una dissolvenza in uscita alla clip attuale: la clip successiva si avvierà da sola.

FadeMode FADE_CROSS = 3

Applica una dissolvenza incrociata tra le clip.

FadeMode FADE_AUTOMATIC = 4

Applica una logica di dissolvenza automatica a seconda della transizione da/a. Si consiglia di utilizzarla per impostazione predefinita.


enum AutoAdvanceMode: 🔗

AutoAdvanceMode AUTO_ADVANCE_DISABLED = 0

Disabilita l'avanzamento automatico (predefinito).

AutoAdvanceMode AUTO_ADVANCE_ENABLED = 1

Abilita l'avanzamento automatico, è necessario specificare una clip.

AutoAdvanceMode AUTO_ADVANCE_RETURN_TO_HOLD = 2

Abilita l'avanzamento automatico, ma invece di specificare una clip, la riproduzione tornerà in attesa (vedi add_transition()).


Costanti

CLIP_ANY = -1 🔗

Questa costante descrive che qualsiasi clip è valida per una specifica transizione come sorgente o come destinazione.


Descrizioni delle proprietà

int clip_count = 0 🔗

  • void set_clip_count(value: int)

  • int get_clip_count()

Quantità di clip contenute in questo lettore interattivo.


int initial_clip = 0 🔗

  • void set_initial_clip(value: int)

  • int get_initial_clip()

Indice della clip iniziale, che verrà riprodotta per prima quando questo flusso viene riprodotto.


Descrizioni dei metodi

void add_transition(from_clip: int, to_clip: int, from_time: TransitionFromTime, to_time: TransitionToTime, fade_mode: FadeMode, fade_beats: float, use_filler_clip: bool = false, filler_clip: int = -1, hold_previous: bool = false) 🔗

Aggiungi una transizione tra due clip. Fornisci gli indici delle clip di origine e destinazione, oppure usa la costante CLIP_ANY per indicare che la transizione avviene da/a qualsiasi clip a questa.

* from_time indica il momento nella clip attuale in cui inizierà la transizione dopo l'attivazione.

* to_time indica il momento nella clip successiva da cui inizierà la riproduzione.

* fade_mode indica come avverrà la dissolvenza tra le clip. Se non sei sicuro, usa FADE_AUTOMATIC il quale usa il tipo di dissolvenza più comune per ogni situazione.

* fade_beats indica quanti battiti richiederà la dissolvenza. È consentito usare i decimali.

* use_filler_clip indica che verrà usata una clip di riempimento tra le clip di origine e destinazione.

* filler_clip l'indice della clip di riempimento.

* Se viene usato hold_previous, questa clip verrà ricordata. Può essere utilizzato insieme a AUTO_ADVANCE_RETURN_TO_HOLD per tornare a questa clip dopo che un'altra ha terminato la riproduzione.


void erase_transition(from_clip: int, to_clip: int) 🔗

Cancella una transizione fornendo gli indici di clip from_clip e to_clip. CLIP_ANY può essere utilizzato per uno degli argomenti o per entrambi.


AutoAdvanceMode get_clip_auto_advance(clip_index: int) const 🔗

Restituisce se una clip ha l'avanzamento automatico abilitato. Vedi set_clip_auto_advance().


int get_clip_auto_advance_next_clip(clip_index: int) const 🔗

Restituisce la clip verso la quale avanzerà automaticamente la clip a cui fa riferimento l'indice clip_index.


StringName get_clip_name(clip_index: int) const 🔗

Restituisce il nome di una clip.


AudioStream get_clip_stream(clip_index: int) const 🔗

Restituisce l'AudioStream associato a un clip.


float get_transition_fade_beats(from_clip: int, to_clip: int) const 🔗

Restituisce il tempo (in battiti) per una transizione (vedi add_transition()).


FadeMode get_transition_fade_mode(from_clip: int, to_clip: int) const 🔗

Restituisce la modalità per una transizione (vedi add_transition()).


int get_transition_filler_clip(from_clip: int, to_clip: int) const 🔗

Restituisce la clip di riempimento per una transizione (vedi add_transition()).


TransitionFromTime get_transition_from_time(from_clip: int, to_clip: int) const 🔗

Restituisce la posizione del tempo di origine per una transizione (vedi add_transition()).


PackedInt32Array get_transition_list() const 🔗

Restituisce la lista delle transizioni (da, a interlacciato).


TransitionToTime get_transition_to_time(from_clip: int, to_clip: int) const 🔗

Restituisce la posizione del tempo di destinazione per una transizione (vedi add_transition()).


bool has_transition(from_clip: int, to_clip: int) const 🔗

Restituisce true se esiste una determinata transizione (che è stata aggiunta tramite add_transition()).


bool is_transition_holding_previous(from_clip: int, to_clip: int) const 🔗

Restituisce se una transizione utilizza la funzionalità mantieni precedente (vedi add_transition()).


bool is_transition_using_filler_clip(from_clip: int, to_clip: int) const 🔗

Restituisce se una transizione utilizza la funzionalità filler clip (vedi add_transition()).


void set_clip_auto_advance(clip_index: int, mode: AutoAdvanceMode) 🔗

Imposta se una clip avanzerà automaticamente modificando la modalità di avanzamento automatico.


void set_clip_auto_advance_next_clip(clip_index: int, auto_advance_next_clip: int) 🔗

Imposta l'indice della clip successiva verso cui questa clip avanzerà automaticamente una volta terminata. Se la clip riprodotta è in ripetizione, l'avanzamento automatico sarà ignorato.


void set_clip_name(clip_index: int, name: StringName) 🔗

Imposta il nome della clip attuale (per identificarla più facilmente).


void set_clip_stream(clip_index: int, stream: AudioStream) 🔗

Imposta l'AudioStream associato alla clip attuale.