diff --git a/src/org/jitsi/impl/neomedia/device/DeviceConfiguration.java b/src/org/jitsi/impl/neomedia/device/DeviceConfiguration.java index 19078033caad3741c9ed1170462c522c01f79160..14844f552449ca8fb6d6da276ee6103d4c52fe96 100644 --- a/src/org/jitsi/impl/neomedia/device/DeviceConfiguration.java +++ b/src/org/jitsi/impl/neomedia/device/DeviceConfiguration.java @@ -1049,10 +1049,16 @@ public void propertyChange(PropertyChangeEvent event) else if (DeviceSystem.PROP_DEVICES.equals(propertyName)) { if (event.getSource() instanceof AudioSystem) + { + // Try to switch to a new active audio system if we are + // currently using the "none" system. + switchFromNoneToActiveAudioSystem( + (CaptureDeviceInfo) event.getNewValue()); firePropertyChange( PROP_AUDIO_SYSTEM_DEVICES, event.getOldValue(), event.getNewValue()); + } } else if (PROP_VIDEO_FRAMERATE.equals(propertyName)) { @@ -1237,5 +1243,13 @@ && getAudioSystem().getLocatorProtocol().equals( } } } + // The device has been unplugged checks. It may be good to check if the + // current active audio system still have actvie devices. If not, then + // we will choose another audio system, or the "none" one if no audio + // system is available. + else + { + extractConfiguredAudioCaptureDevices(); + } } }