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]; }