diff --git a/videoview.cpp b/videoview.cpp
index 00f224af80ac3af0c6af3bf33385a2803bcbe9a4..0e0b2d43898f932edcb5429d89e112186906c1a3 100644
--- a/videoview.cpp
+++ b/videoview.cpp
@@ -230,6 +230,9 @@ VideoView::showContextMenu(const QPoint& position)
         connect(deviceAction, &QAction::triggered,
             [this, deviceName]() {
                 auto device = deviceName.toStdString();
+                if (LRCInstance::avModel().getCurrentVideoCaptureDevice() == device) {
+                    return;
+                }
                 resetPreview();
                 LRCInstance::avModel().switchInputTo(device);
                 LRCInstance::avModel().setCurrentVideoCaptureDevice(device);