diff options
-rw-r--r-- | servers/audio/audio_stream.cpp | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/servers/audio/audio_stream.cpp b/servers/audio/audio_stream.cpp index 12ee98595d..a6c262d10f 100644 --- a/servers/audio/audio_stream.cpp +++ b/servers/audio/audio_stream.cpp @@ -186,6 +186,10 @@ float AudioStreamPlaybackMicrophone::get_stream_sampling_rate() { void AudioStreamPlaybackMicrophone::start(float p_from_pos) { + if (active) { + return; + } + if (!GLOBAL_GET("audio/enable_audio_input")) { WARN_PRINTS("Need to enable Project settings > Audio > Enable Audio Input option to use capturing."); return; @@ -193,15 +197,17 @@ void AudioStreamPlaybackMicrophone::start(float p_from_pos) { input_ofs = 0; - AudioDriver::get_singleton()->capture_start(); - - active = true; - _begin_resample(); + if (AudioDriver::get_singleton()->capture_start() == OK) { + active = true; + _begin_resample(); + } } void AudioStreamPlaybackMicrophone::stop() { - AudioDriver::get_singleton()->capture_stop(); - active = false; + if (active) { + AudioDriver::get_singleton()->capture_stop(); + active = false; + } } bool AudioStreamPlaybackMicrophone::is_playing() const { |