AudioStreamWAV¶
继承: AudioStream < Resource < RefCounted < Object
存储从WAV文件加载的音频数据。
描述¶
AudioStreamWAV存储从WAV文件加载的声音样本。要播放存储的声音,请使用AudioStreamPlayer(用于非位置音频)或AudioPlayer(用于位置音频)。声音可以循环播放。
此类还可用于存储dynamically-generatedPCM音频数据。
属性¶
方法¶
load_from_buffer(stream_data: PackedByteArray, options: Dictionary = {}) static |
|
load_from_file(path: String, options: Dictionary = {}) static |
|
save_to_wav(path: String) |
枚举¶
enum Format: 🔗
Format FORMAT_8_BITS = 0
8位PCM音频编解码器。
Format FORMAT_16_BITS = 1
16位PCM音频编解码器。
Format FORMAT_IMA_ADPCM = 2
音频作为IMA ADPCM进行有损压缩。
Format FORMAT_QOA = 3
音频被有损压缩为相当好的音频。
enum LoopMode: 🔗
LoopMode LOOP_DISABLED = 0
音频不循环。
LoopMode LOOP_FORWARD = 1
音频在loop_begin和loop_end之间循环数据,仅向前播放。
LoopMode LOOP_PINGPONG = 2
音频在loop_begin和loop_end之间循环数据,来回播放。
LoopMode LOOP_BACKWARD = 3
音频在loop_begin和loop_end之间循环数据,仅向后播放。
属性说明¶
PackedByteArray data = PackedByteArray() 🔗
void set_data(value: PackedByteArray)
PackedByteArray get_data()
包含以字节为单位的音频数据。
注意:如果format设置为FORMAT_8_BITS,则此属性需要有符号的8位PCM数据。要从无符号的8位PCM转换,请从每个字节中减去128。
注意:如果format设置为FORMAT_QOA,则此属性需要来自完整QOA文件的数据。
注意: 返回的数组是被 复制 的,对它的任何修改都不会更新原始属性的值。有关更多详细信息,请参阅 PackedByteArray 。
音频格式。有关值,请参阅Format常量。
循环起始点(以样本数为单位,相对于流的开头)。
循环终端(以样本数量,相对于流的开始)。
循环模式。有关值,请参阅LoopMode常量。
混合此音频的采样率。更高的值需要更多的存储空间,但会带来更好的质量。
在应用中,使用的常见采样率是11025、16000、22050、32000、44100和48000。
根据奈奎斯特-香农采样定理,当超过40,000赫兹时,人类的听力没有质量差异(因为大多数人只能听到约20,000赫兹,通常更少)。如果您使用低音调的声音,例如人声,较低的采样率,例如32000或22050可以在质量没有损失的情况下使用。
如果true,则音频是立体声的。
方法说明¶
AudioStreamWAV load_from_buffer(stream_data: PackedByteArray, options: Dictionary = {}) static 🔗
从给定的缓冲区创建一个新的AudioStreamWAV实例。缓冲区必须包含WAV数据。
options的键和值与ResourceImporterWAV的属性匹配。options的用法与load_from_file()相同。
AudioStreamWAV load_from_file(path: String, options: Dictionary = {}) static 🔗
从给定的文件路径创建一个新的AudioStreamWAV实例。该文件必须为WAV格式。
options的键和值与ResourceImporterWAV的属性匹配。
示例:加载第一个拖放的WAV文件并播放它:
@onready var audio_player = $AudioStreamPlayer
func _ready():
get_window().files_dropped.connect(_on_files_dropped)
func _on_files_dropped(files):
if files[0].get_extension() == "wav":
audio_player.stream = AudioStreamWAV.load_from_file(files[0], {
"force/max_rate": true,
"force/max_rate_hz": 11025
})
audio_player.play()
Error save_to_wav(path: String) 🔗
将AudioStreamWAV作为WAV文件保存到path。无法保存IMA ADPCM或相当好的音频格式的样本。
注意:如果缺少. wav扩展名,则会自动附加到path。