57 lines
1.4 KiB
GDScript3
57 lines
1.4 KiB
GDScript3
|
extends Control
|
||
|
|
||
|
var effect
|
||
|
var recording
|
||
|
|
||
|
func _ready():
|
||
|
var idx = AudioServer.get_bus_index("Record")
|
||
|
effect = AudioServer.get_bus_effect(idx, 0)
|
||
|
print("We have ",AudioServer.bus_count," busses.")
|
||
|
for i in range(0,2):
|
||
|
print("Bus ",i," is called ",AudioServer.get_bus_name(i))
|
||
|
print("index of `Record` is ",idx)
|
||
|
print("effect is", effect)
|
||
|
|
||
|
|
||
|
func _on_RecordButton_pressed():
|
||
|
if effect.is_recording_active():
|
||
|
recording = effect.get_recording()
|
||
|
$PlayButton.disabled = false
|
||
|
$SaveButton.disabled = false
|
||
|
effect.set_recording_active(false)
|
||
|
$RecordButton.text = "Record"
|
||
|
$Status.text = ""
|
||
|
else:
|
||
|
$PlayButton.disabled = true
|
||
|
$SaveButton.disabled = true
|
||
|
effect.set_recording_active(true)
|
||
|
$RecordButton.text = "Stop"
|
||
|
$Status.text = "Recording..."
|
||
|
|
||
|
|
||
|
func _on_PlayButton_pressed():
|
||
|
print(recording)
|
||
|
print(recording.format)
|
||
|
print(recording.mix_rate)
|
||
|
print(recording.stereo)
|
||
|
var data = recording.get_data()
|
||
|
print(data)
|
||
|
print(data.size())
|
||
|
$AudioStreamPlayer.stream = recording
|
||
|
$AudioStreamPlayer.play()
|
||
|
|
||
|
|
||
|
func _on_Play_Music_pressed():
|
||
|
if $AudioStreamPlayer2.playing:
|
||
|
$AudioStreamPlayer2.stop()
|
||
|
$PlayMusic.text = "Play Music"
|
||
|
else:
|
||
|
$AudioStreamPlayer2.play()
|
||
|
$PlayMusic.text = "Stop Music"
|
||
|
|
||
|
|
||
|
func _on_SaveButton_pressed():
|
||
|
var save_path = $SaveButton/Filename.text
|
||
|
recording.save_to_wav(save_path)
|
||
|
$Status.text = "Saved WAV file to: %s\n(%s)" % [save_path, ProjectSettings.globalize_path(save_path)]
|