diff --git a/src/media/audio/audioloop.cpp b/src/media/audio/audioloop.cpp
index 333e21534b7f4ad2d6bc5d239cdfff9bf9ca8015..bf767e374c22e9b9cdd21d702e3fd46671f81e1c 100644
--- a/src/media/audio/audioloop.cpp
+++ b/src/media/audio/audioloop.cpp
@@ -65,6 +65,7 @@ AudioLoop::getNext(AVFrame* output, bool mute)
 
     if (buf_samples == 0) {
         JAMI_ERR("Audio loop size is 0");
+        av_samples_set_silence(output->data, 0, output->nb_samples, format_.nb_channels, format_.sampleFormat);
         return;
     } else if (pos >= buf_samples) {
         JAMI_ERR("Invalid loop position %zu", pos);
diff --git a/src/media/audio/opensl/audio_player.cpp b/src/media/audio/opensl/audio_player.cpp
index ab8c26ca52f210298195f41653080617d2fe40c6..c3967c2b3283ad31177910674d57751d0b5f966d 100644
--- a/src/media/audio/opensl/audio_player.cpp
+++ b/src/media/audio/opensl/audio_player.cpp
@@ -168,7 +168,7 @@ AudioPlayer::AudioPlayer(jami::AudioFormat sampleFormat,
 
     silentBuf_ = {(format_pcm.containerSize >> 3) * format_pcm.numChannels * bufSize};
     silentBuf_.size_ = silentBuf_.cap_;
-    memset(silentBuf_.buf_, 0, silentBuf_.cap_);
+    av_samples_set_silence(&silentBuf_.buf_, 0, (int)bufSize, (int)sampleInfo_.nb_channels, sampleInfo_.sampleFormat);
 }
 
 AudioPlayer::~AudioPlayer()
diff --git a/src/media/audio/opensl/audio_recorder.cpp b/src/media/audio/opensl/audio_recorder.cpp
index 9686573a4f7fadfdff0b0beff7991caebe556f9f..9e9b01e895275c22bee74d097e09244395f1ef84 100644
--- a/src/media/audio/opensl/audio_recorder.cpp
+++ b/src/media/audio/opensl/audio_recorder.cpp
@@ -202,7 +202,7 @@ AudioRecorder::AudioRecorder(jami::AudioFormat sampleFormat, size_t bufSize, SLE
 
     silentBuf_ = {(format_pcm.containerSize >> 3) * format_pcm.numChannels * bufSize};
     silentBuf_.size_ = silentBuf_.cap_;
-    memset(silentBuf_.buf_, 0, silentBuf_.cap_);
+    av_samples_set_silence(&silentBuf_.buf_, 0, (int)bufSize, (int)sampleInfo_.nb_channels, sampleInfo_.sampleFormat);
 }
 
 bool