const MAX_SAMPLES: int = 10
var record_live_index: int
var volume_samples: Array = []
func _ready() -> void:
# Замените на название своей шины
record_live_index = AudioServer.get_bus_index('Microphone')
func _process(delta: float) -> void:
var sample = db_to_linear(AudioServer.get_bus_peak_volume_left_db(record_live_index, 0))
volume_samples.push_front(sample)
if volume_samples.size() > MAX_SAMPLES:
volume_samples.pop_back()
var sample_avg = average_array(volume_samples)
print('%sdb' % round(linear_to_db(sample_avg)))
func average_array(arr: Array) -> float:
var avg = 0.0
for i in range(arr.size()):
avg += arr[i]
avg /= arr.size()
return avg
启用音频输入
进入项目设置,点击高级设置。转到音频>驱动程序,选中复选框
*图片显示的是重点,但应该没有区别)
Включить ввод。创建新的音频总线
在底部的控制台位置,选择
Аудио。单击添加按钮,命名新总线Muted,立即单击顶部的M,这样您的麦克风就不会被听到。创建另一个麦克风总线并选择静音作为输出总线。设置应如下所示:
将麦克风广播到公交车
在您的场景中,创建一个新节点:
AudioStreamPlayer。在 Stream 字段中,创建一个新的
AudioStreamMicrophone。在“巴士”字段中,选择巴士Microphone(或您的姓名)。打开自动播放。获取音量
现在您可以像这样从麦克风获取音量:
(函数名称可能不同)
答案是根据本指南撰写的