diff --git a/UI/window-basic-main.cpp b/UI/window-basic-main.cpp index ced528b82..7dbc85219 100644 --- a/UI/window-basic-main.cpp +++ b/UI/window-basic-main.cpp @@ -1253,6 +1253,9 @@ void OBSBasic::OBSInit() "MonitoringDeviceId"); obs_set_audio_monitoring_device(device_name, device_id); + + blog(LOG_INFO, "Audio monitoring device:\n\tname: %s\n\tid: %s", + device_name, device_id); #endif InitOBSCallbacks(); diff --git a/UI/window-basic-settings.cpp b/UI/window-basic-settings.cpp index 22fa15aa8..a37753ace 100644 --- a/UI/window-basic-settings.cpp +++ b/UI/window-basic-settings.cpp @@ -2543,6 +2543,9 @@ void OBSBasicSettings::SaveVideoSettings() void OBSBasicSettings::SaveAdvancedSettings() { + QString lastMonitoringDevice = config_get_string(main->Config(), + "Audio", "MonitoringDeviceId"); + #ifdef _WIN32 if (WidgetChanged(ui->renderer)) config_set_string(App()->GlobalConfig(), "Video", "Renderer", @@ -2592,10 +2595,17 @@ void OBSBasicSettings::SaveAdvancedSettings() SaveComboData(ui->bindToIP, "Output", "BindIP"); #if defined(_WIN32) || defined(__APPLE__) - obs_set_audio_monitoring_device( - QT_TO_UTF8(ui->monitoringDevice->currentText()), - QT_TO_UTF8(ui->monitoringDevice->currentData() - .toString())); + QString newDevice = ui->monitoringDevice->currentData().toString(); + + if (lastMonitoringDevice != newDevice) { + obs_set_audio_monitoring_device( + QT_TO_UTF8(ui->monitoringDevice->currentText()), + QT_TO_UTF8(newDevice)); + + blog(LOG_INFO, "Audio monitoring device:\n\tname: %s\n\tid: %s", + QT_TO_UTF8(ui->monitoringDevice->currentText()), + QT_TO_UTF8(newDevice)); + } #endif }