diff --git a/src/media/audio/pulseaudio/pulselayer.cpp b/src/media/audio/pulseaudio/pulselayer.cpp
index 5f1806d46126bfc4148e2d94b35618216cade99c..93db184b88766a05f270fd77fed2c6a5a92b0146 100644
--- a/src/media/audio/pulseaudio/pulselayer.cpp
+++ b/src/media/audio/pulseaudio/pulselayer.cpp
@@ -436,7 +436,7 @@ void PulseLayer::writeToSpeaker()
     AudioSample* data = nullptr;
     pa_stream_begin_write(playback_->stream(), (void**)&data, &writableBytes);
 
-    if (!buff)
+    if (not buff or isPlaybackMuted_)
         memset(data, 0, writableBytes);
     else
         std::memcpy(data, buff->pointer()->data[0], buff->pointer()->nb_samples * playback_->frameSize());
@@ -470,7 +470,6 @@ void PulseLayer::readFromMic()
         RING_ERR("Capture stream drop failed: %s" , pa_strerror(pa_context_errno(context_)));
 
     //dcblocker_.process(*out);
-    //out->applyGain(isPlaybackMuted_ ? 0.0 : playbackGain_);
     mainRingBuffer_->put(std::move(out));
 }
 
@@ -488,7 +487,7 @@ void PulseLayer::ringtoneToSpeaker()
     AudioSample* data;
     pa_stream_begin_write(ringtone_->stream(), (void**)&data, &bytes);
 
-    if (!buff)
+    if (not buff or isRingtoneMuted_)
         memset(data, 0, bytes);
     else
         std::memcpy(data, buff->pointer()->data[0], buff->pointer()->nb_samples * playback_->frameSize());