diff --git a/src/media/video/osxvideo/video_device_monitor_impl.mm b/src/media/video/osxvideo/video_device_monitor_impl.mm
index d67d1bbb3b9bdc46f0ec04e6123cd9b433899486..0cbd9af06c20fe4cab3a635d72195cf70da92bfa 100644
--- a/src/media/video/osxvideo/video_device_monitor_impl.mm
+++ b/src/media/video/osxvideo/video_device_monitor_impl.mm
@@ -98,15 +98,17 @@ void VideoDeviceMonitorImpl::start()
                                     object:nil
                                     queue:[NSOperationQueue mainQueue]
                                     usingBlock:^(NSNotification *note) {
-                                      AVCaptureDevice* dev = (AVCaptureDevice*)note.object;
-                                      monitor_->addDevice([[dev uniqueID] UTF8String]);
+                                        auto dev = (AVCaptureDevice*)note.object;
+                                        if([dev hasMediaType:AVMediaTypeVideo])
+                                            monitor_->addDevice([[dev uniqueID] UTF8String]);
                                     }];
     id deviceWasDisconnectedObserver = [notificationCenter addObserverForName:AVCaptureDeviceWasDisconnectedNotification
                                         object:nil
                                         queue:[NSOperationQueue mainQueue]
                                         usingBlock:^(NSNotification *note) {
-                                          AVCaptureDevice* dev = (AVCaptureDevice*)note.object;
-                                          monitor_->removeDevice([[dev uniqueID] UTF8String]);
+                                            auto dev = (AVCaptureDevice*)note.object;
+                                            if([dev hasMediaType:AVMediaTypeVideo])
+                                                monitor_->removeDevice([[dev uniqueID] UTF8String]);
                                         }];
     observers = [[NSArray alloc] initWithObjects:deviceWasConnectedObserver, deviceWasDisconnectedObserver, nil];
 }