diff --git a/Telegram/SourceFiles/media/audio/media_audio.cpp b/Telegram/SourceFiles/media/audio/media_audio.cpp index b93743d7f..2c7acbf9a 100644 --- a/Telegram/SourceFiles/media/audio/media_audio.cpp +++ b/Telegram/SourceFiles/media/audio/media_audio.cpp @@ -13,6 +13,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "media/audio/media_audio_track.h" #include "media/media_common.h" #include "media/streaming/media_streaming_utility.h" +#include "webrtc/webrtc_environment.h" #include "webrtc/webrtc_media_devices.h" #include "data/data_document.h" #include "data/data_file_origin.h" @@ -144,8 +145,11 @@ bool CreatePlaybackDevice() { const auto id = Current().deviceId().toStdString(); AudioDevice = alcOpenDevice(id.c_str()); if (!AudioDevice) { - LOG(("Audio Error: Could not create default playback device, enumerating..")); - EnumeratePlaybackDevices(); + LOG(("Audio Error: Could not create default playback device, refreshing..")); + crl::on_main([] { + const auto type = Webrtc::DeviceType::Playback; + Core::App().mediaDevices().forceRefresh(type); + }); return false; } diff --git a/Telegram/SourceFiles/settings/settings_calls.cpp b/Telegram/SourceFiles/settings/settings_calls.cpp index 8f7f1d61f..3ad5e6b3e 100644 --- a/Telegram/SourceFiles/settings/settings_calls.cpp +++ b/Telegram/SourceFiles/settings/settings_calls.cpp @@ -555,7 +555,8 @@ void ChooseAudioDeviceBox( return; } const auto weak = Ui::MakeWeak(box); - chosen(state->ids.take(value).value_or(kDefaultDeviceId)); + const auto i = state->ids.find(value); + chosen((i != end(state->ids)) ? i->second : kDefaultDeviceId); if (weak) { box->closeBox(); } diff --git a/Telegram/lib_webrtc b/Telegram/lib_webrtc index 5a8316978..b78e51ad9 160000 --- a/Telegram/lib_webrtc +++ b/Telegram/lib_webrtc @@ -1 +1 @@ -Subproject commit 5a831697880967bbccbd45177fb6cf6b11759a22 +Subproject commit b78e51ad98cd5bf70e916becae0b13496b9f6aca