AudioStreamRandomizer

继承: AudioStream < Resource < RefCounted < Object

用音高和音量偏移,包装一个音频流池。

描述

根据播放模式,从池中随机选择一个 AudioStream,并在播放期间应用随机音高偏移和音量偏移。

属性

PlaybackMode

playback_mode

0

float

random_pitch

1.0

float

random_volume_offset_db

0.0

int

streams_count

0

方法

void

add_stream(index: int, stream: AudioStream, weight: float = 1.0)

AudioStream

get_stream(index: int) const

float

get_stream_probability_weight(index: int) const

void

move_stream(index_from: int, index_to: int)

void

remove_stream(index: int)

void

set_stream(index: int, stream: AudioStream)

void

set_stream_probability_weight(index: int, weight: float)


枚举

enum PlaybackMode: 🔗

PlaybackMode PLAYBACK_RANDOM_NO_REPEATS = 0

根据为每个流选择的概率权重随机挑选一个流,但尽可能避免连续两次播放同一个流。如果池中只有 1 个声音,则将始终播放同一个声音,从而有效地允许重复发生。

PlaybackMode PLAYBACK_RANDOM = 1

根据为每个流选择的概率权重随机挑选一个流。如果池中只有 1 个声音,则将始终播放同一个声音。

PlaybackMode PLAYBACK_SEQUENTIAL = 2

按照流池中出现的顺序播放流。如果池中只有 1 个声音,则将始终播放同一个声音。


属性说明

PlaybackMode playback_mode = 0 🔗

控制该 AudioStreamRandomizer 如何选择下一个要播放的 AudioStream。


float random_pitch = 1.0 🔗

  • void set_random_pitch(value: float)

  • float get_random_pitch()

随机音高变化的强度。值为 1 表示没有变化。


float random_volume_offset_db = 0.0 🔗

  • void set_random_volume_offset_db(value: float)

  • float get_random_volume_offset_db()

随机音量变化的强度。值为 0 表示没有变化。


int streams_count = 0 🔗

  • void set_streams_count(value: int)

  • int get_streams_count()

流池中流的数量。


方法说明

void add_stream(index: int, stream: AudioStream, weight: float = 1.0) 🔗

在指定索引处插入一个流。如果索引小于零,则插入发生在底层池的末尾。


AudioStream get_stream(index: int) const 🔗

返回指定索引处的流。


float get_stream_probability_weight(index: int) const 🔗

返回与给定索引处的流关联的概率权重。


void move_stream(index_from: int, index_to: int) 🔗

将流从一个索引移动到另一个索引。


void remove_stream(index: int) 🔗

移除指定索引处的流。


void set_stream(index: int, stream: AudioStream) 🔗

设置指定索引处的 AudioStream。


void set_stream_probability_weight(index: int, weight: float) 🔗

设置流在指定索引处的概率权重。该值越高,随机化器在随机播放模式下选择该流的可能性就越大。