AudioStreamSample

Inherits: AudioStream < Resource < Reference < Object

存储从WAV文件加载的音频数据。

描述

AudioStreamSample 存储从 WAV 文件加载的声音样本。要播放存储的声音,请使用 AudioStreamPlayer(用于非定位音频)或 AudioStreamPlayer2D/AudioStreamPlayer3D(用于定位音频)。声音可以循环播放。

此类还可用于存储动态生成的 PCM 音频数据。另请参阅 AudioStreamGenerator 以了解程序式音频生成。

属性

PoolByteArray

data

PoolByteArray(  )

Format

format

0

int

loop_begin

0

int

loop_end

0

LoopMode

loop_mode

0

int

mix_rate

44100

bool

stereo

false

方法

Error

save_to_wav ( String path )

枚举

enum Format:

  • FORMAT_8_BITS = 0 —- 8位音频编解码器。

  • FORMAT_16_BITS = 1 —- 16位音频编解码器。

  • FORMAT_IMA_ADPCM = 2 —- 音频使用 IMA ADPCM 进行压缩。


enum LoopMode:

  • LOOP_DISABLED = 0 —- 音频不循环。

  • LOOP_FORWARD = 1 —- 音频循环播放 loop_beginloop_end 之间的数据,只向前播放。

  • LOOP_PING_PONG = 2 —- 音频在 loop_beginloop_end 之间循环数据,来回播放。

  • LOOP_BACKWARD = 3 —- 音频在 loop_beginloop_end 之间循环数据,仅向后播放。

属性说明

Default

PoolByteArray(  )

Setter

set_data(value)

Getter

get_data()

包含以字节为单位的音频数据。

注意:此属性需要有符号的 PCM8数据。要将无符号的 PCM8转换为有符号的 PCM8,需要从每个字节中减去128。


Default

0

Setter

set_format(value)

Getter

get_format()

音频格式。参阅Format常量的值。


  • int loop_begin

Default

0

Setter

set_loop_begin(value)

Getter

get_loop_begin()

循环起始点(相对于样本开始的样本数)。如果存在此信息,将自动从 WAV 文件导入。


Default

0

Setter

set_loop_end(value)

Getter

get_loop_end()

循环结束点(相对于样本开始的样本数)。如果存在此信息,将自动从 WAV 文件导入。


Default

0

Setter

set_loop_mode(value)

Getter

get_loop_mode()

循环模式。该信息将自动从WAV文件中导入(如果存在)。有关值,请参阅LoopMode常量。


Default

44100

Setter

set_mix_rate(value)

Getter

get_mix_rate()

混合这个音频的采样率。更高的数值需要更多的存储空间,但会带来更好的质量。

在游戏中,常用的采样率有1102516000220503200044100,以及48000

根据Nyquist-Shannon采样定理,当超过40000赫兹时,对于人的听觉没有质量上的差别(因为大多数人只能听到~20000赫兹,往往更少)。如果你使用低音调的声音,如语音,较低的采样率,如3200022050可能是可用的,没有质量上的损失。


Default

false

Setter

set_stereo(value)

Getter

is_stereo()

如果true,音频为立体声。

方法说明

将AudioStreamSample作为WAV文件保存到path。无法保存IMA ADPCM格式的样本。

注意:如果缺少.wav扩展名,则会自动将其附加到path