diff --git a/src/accountadapter.cpp b/src/accountadapter.cpp
index 693f1da2ba5eb0bdaaca573b6b21f8b8405655e3..11007e0dae171abbfd6c1b8341f18b6869f309f6 100644
--- a/src/accountadapter.cpp
+++ b/src/accountadapter.cpp
@@ -247,18 +247,6 @@ AccountAdapter::savePassword(const QString& accountId,
     return LRCInstance::accountModel().changeAccountPassword(accountId, oldPassword, newPassword);
 }
 
-void
-AccountAdapter::startAudioMeter(bool async)
-{
-    LRCInstance::startAudioMeter(async);
-}
-
-void
-AccountAdapter::stopAudioMeter(bool async)
-{
-    LRCInstance::stopAudioMeter(async);
-}
-
 void
 AccountAdapter::startPreviewing(bool force, bool async)
 {
diff --git a/src/accountadapter.h b/src/accountadapter.h
index 0f7ff21e126913309e0910005c76a3f00a8f7787..33840a7048a55ab8f11e03f4a708eea3f942d68c 100644
--- a/src/accountadapter.h
+++ b/src/accountadapter.h
@@ -97,8 +97,7 @@ public:
     Q_INVOKABLE bool savePassword(const QString& accountId,
                                   const QString& oldPassword,
                                   const QString& newPassword);
-    Q_INVOKABLE void startAudioMeter(bool async);
-    Q_INVOKABLE void stopAudioMeter(bool async);
+
     Q_INVOKABLE void startPreviewing(bool force = false, bool async = true);
     Q_INVOKABLE void stopPreviewing(bool async = true);
     Q_INVOKABLE bool hasVideoCall();
diff --git a/src/avadapter.cpp b/src/avadapter.cpp
index 2633ea0c6da0b16f70d09629806d50fa0de9e179..91cd9e2a4835b78455e2ae46b032dae9be0ebfdf 100644
--- a/src/avadapter.cpp
+++ b/src/avadapter.cpp
@@ -126,3 +126,15 @@ AvAdapter::shareScreenArea(int screenNumber, int x, int y, int width, int height
                                       width < 128 ? 128 : width,
                                       height < 128 ? 128 : height);
 }
+
+void
+AvAdapter::startAudioMeter(bool async)
+{
+    LRCInstance::startAudioMeter(async);
+}
+
+void
+AvAdapter::stopAudioMeter(bool async)
+{
+    LRCInstance::stopAudioMeter(async);
+}
diff --git a/src/avadapter.h b/src/avadapter.h
index 111a5b473918494b8d1f0dc7c0174b8d95414fc6..cd30f7a7443915443f0ed55b7ebd3d81fa011b0e 100644
--- a/src/avadapter.h
+++ b/src/avadapter.h
@@ -64,4 +64,7 @@ protected:
      * Select screen area to display.
      */
     Q_INVOKABLE void shareScreenArea(int screenNumber, int x, int y, int width, int height);
+
+    Q_INVOKABLE void startAudioMeter(bool async);
+    Q_INVOKABLE void stopAudioMeter(bool async);
 };
diff --git a/src/settingsview/SettingsView.qml b/src/settingsview/SettingsView.qml
index 1e5b95b5411aef1a5e9e0d2e02991881ac1669be..da9ca9648352e2dd2187c8b57703e08e39a97e22 100644
--- a/src/settingsview/SettingsView.qml
+++ b/src/settingsview/SettingsView.qml
@@ -51,40 +51,25 @@ Rectangle {
         switch(sel) {
             case SettingsView.Account:
                 pageIdCurrentAccountSettings.connectCurrentAccount()
-
-                settingsViewRect.stopAudioMeter()
                 settingsViewRect.stopPreviewing()
-
                 selectedMenu = sel
-
                 if(pageIdCurrentAccountSettings.isPhotoBoothOpened())
                 {
                     settingsViewRect.setAvatar()
                 }
-
                 pageIdCurrentAccountSettings.updateAccountInfoDisplayed()
                 break
             case SettingsView.General:
-                try{
-                    settingsViewRect.stopAudioMeter()
-                    settingsViewRect.stopPreviewing()
-                } catch(erro) {}
-
+                settingsViewRect.stopPreviewing()
                 selectedMenu = sel
                 break
             case SettingsView.Media:
                 selectedMenu = sel
-
                 settingsViewRect.stopPreviewing()
                 avSettings.populateAVSettings()
-                settingsViewRect.startAudioMeter()
                 break
             case SettingsView.Plugin:
-                try{
-                    settingsViewRect.stopAudioMeter()
-                    settingsViewRect.stopPreviewing()
-                } catch(erro) {}
-
+                settingsViewRect.stopPreviewing()
                 selectedMenu = sel
                 pluginSettings.populatePluginSettings()
                 break
@@ -102,7 +87,6 @@ Rectangle {
 
     // slots
     function leaveSettingsSlot(showMainView) {
-        settingsViewRect.stopAudioMeter()
         settingsViewRect.stopPreviewing()
         settingsViewRect.stopBooth()
         if (showMainView)
@@ -137,8 +121,6 @@ Rectangle {
 
         anchors.fill: root
 
-        signal stopAudioMeter
-        signal startAudioMeter
         signal stopPreviewing
         signal stopBooth
         signal setAvatar
diff --git a/src/settingsview/components/AudioSettings.qml b/src/settingsview/components/AudioSettings.qml
index 9ac0b1f0da4c3cbb3a191289425ccddf88612d33..c20b5b216b0bcf70dfc9fdc502891aad1451ee19 100644
--- a/src/settingsview/components/AudioSettings.qml
+++ b/src/settingsview/components/AudioSettings.qml
@@ -41,29 +41,6 @@ ColumnLayout {
         AUDIOMANAGER
     }
 
-    Connections {
-        target: settingsViewRect
-
-        function onStopAudioMeter() {
-            stopAudioMeter()
-        }
-
-        function onStartAudioMeter() {
-            startAudioMeter()
-        }
-    }
-
-    Connections{
-        target: AVModel
-        enabled: root.visible
-
-        function onAudioMeter(id, level) {
-            if (id === "audiolayer_id") {
-                audioInputMeter.setLevel(level)
-            }
-        }
-    }
-
     function populateAudioSettings() {
         inputComboBoxSetting.comboModel.reset()
         audioOutputDeviceModel.reset()
@@ -79,16 +56,6 @@ ColumnLayout {
         audioManagerComboBoxSetting.visible = (audioManagerComboBoxSetting.comboModel.rowCount() > 0)
     }
 
-    function stopAudioMeter(async = true){
-        audioInputMeter.stop()
-        AccountAdapter.stopAudioMeter(async)
-    }
-
-    function startAudioMeter(async = true){
-        audioInputMeter.start()
-        AccountAdapter.startAudioMeter(async)
-    }
-
     AudioOutputDeviceModel{
         id: audioOutputDeviceModel
     }
@@ -117,12 +84,12 @@ ColumnLayout {
         role: "ID_UTF8"
 
         onIndexChanged: {
-            stopAudioMeter(false)
+            AvAdapter.stopAudioMeter(false)
             var selectedInputDeviceName = comboModel.data(
                         comboModel.index(modelIndex, 0),
                         AudioInputDeviceModel.Device_ID)
             AVModel.setInputDevice(selectedInputDeviceName)
-            startAudioMeter(false)
+            AvAdapter.startAudioMeter(false)
         }
     }
 
@@ -154,12 +121,12 @@ ColumnLayout {
         role: "ID_UTF8"
 
         onIndexChanged: {
-            stopAudioMeter(false)
+            AvAdapter.stopAudioMeter(false)
             var selectedOutputDeviceName = audioOutputDeviceModel.data(
                         audioOutputDeviceModel.index(modelIndex, 0),
                         AudioOutputDeviceModel.Device_ID)
             AVModel.setOutputDevice(selectedOutputDeviceName)
-            startAudioMeter(false)
+            AvAdapter.startAudioMeter(false)
         }
     }
 
@@ -178,12 +145,12 @@ ColumnLayout {
         role: "ID_UTF8"
 
         onIndexChanged: {
-            stopAudioMeter(false)
+            AvAdapter.stopAudioMeter(false)
             var selectedRingtoneDeviceName = audioOutputDeviceModel.data(
                         audioOutputDeviceModel.index(modelIndex, 0),
                         AudioOutputDeviceModel.Device_ID)
             AVModel.setRingtoneDevice(selectedRingtoneDeviceName)
-            startAudioMeter(false)
+            AvAdapter.startAudioMeter(false)
         }
     }
 
@@ -201,11 +168,11 @@ ColumnLayout {
         role: "ID_UTF8"
 
         onIndexChanged: {
-            stopAudioMeter(false)
+            AvAdapter.stopAudioMeter(false)
             var selectedAudioManager = comboModel.data(
                         comboModel.index(modelIndex, 0), AudioManagerListModel.AudioManagerID)
             AVModel.setAudioManager(selectedAudioManager)
-            startAudioMeter(false)
+            AvAdapter.startAudioMeter(false)
             populateAudioSettings()
         }
     }
diff --git a/src/settingsview/components/AvSettingPage.qml b/src/settingsview/components/AvSettingPage.qml
index 19fb86bd20920f17221abe01e0841c81b2cb8275..200d6bbc6da8f0bc697e6b399fc2ca6fe3ab917d 100644
--- a/src/settingsview/components/AvSettingPage.qml
+++ b/src/settingsview/components/AvSettingPage.qml
@@ -38,7 +38,6 @@ Rectangle {
     onVisibleChanged: {
         if (!visible) {
             videoSettings.stopPreviewing()
-            audioSettings.stopAudioMeter()
         }
     }
 
diff --git a/src/settingsview/components/LevelMeter.qml b/src/settingsview/components/LevelMeter.qml
index d8cf9eeef4f62f1add4e8769c5c96cc7738797b5..d5b984cea567cafe932e64d650414218b0aab3f1 100644
--- a/src/settingsview/components/LevelMeter.qml
+++ b/src/settingsview/components/LevelMeter.qml
@@ -18,30 +18,38 @@
 
 import QtQuick 2.15
 import QtQuick.Controls 2.15
+import net.jami.Models 1.0
+import net.jami.Adapters 1.0
 
 ProgressBar {
     id: root
 
+    property real rmsLevel: 0
+
     value: {
         return clamp(rmsLevel * 300.0, 0.0, 100.0)
     }
 
-    property real rmsLevel: 0
-
-    function clamp(num,a,b) {
-        return Math.max(Math.min(num, Math.max(a, b)), Math.min(a, b))
+    onVisibleChanged: {
+        if (visible) {
+            rmsLevel = 0
+            AvAdapter.startAudioMeter(true)
+        } else
+            AvAdapter.stopAudioMeter(true)
     }
 
-    function start() {
-        rmsLevel = 0
+    function clamp(num, a, b) {
+        return Math.max(Math.min(num, Math.max(a, b)), Math.min(a, b))
     }
 
-    function stop() {
-
-    }
+    Connections{
+        target: AVModel
+        enabled: root.visible
 
-    function setLevel(rmsLevelIn) {
-        rmsLevel = rmsLevelIn
+        function onAudioMeter(id, level) {
+            if (id === "audiolayer_id") {
+                rmsLevel = level
+            }
+        }
     }
-
 }