diff --git a/Telegram/SourceFiles/core/application.cpp b/Telegram/SourceFiles/core/application.cpp index f0d34537b..9d16ded2b 100644 --- a/Telegram/SourceFiles/core/application.cpp +++ b/Telegram/SourceFiles/core/application.cpp @@ -148,9 +148,6 @@ Application::Application(not_null launcher) , _audio(std::make_unique()) , _fallbackProductionConfig( std::make_unique(MTP::Environment::Production)) -, _mediaControlsManager(MediaControlsManager::Supported() - ? std::make_unique() - : nullptr) , _downloadManager(std::make_unique()) , _domain(std::make_unique(cDataFile())) , _exportManager(std::make_unique()) @@ -216,6 +213,8 @@ Application::~Application() { Window::Theme::Uninitialize(); + _mediaControlsManager = nullptr; + Media::Player::finish(_audio.get()); style::stopManager(); @@ -267,6 +266,10 @@ void Application::run() { startSystemDarkModeViewer(); Media::Player::start(_audio.get()); + if (MediaControlsManager::Supported()) { + _mediaControlsManager = std::make_unique(); + } + style::ShortAnimationPlaying( ) | rpl::start_with_next([=](bool playing) { if (playing) { diff --git a/Telegram/SourceFiles/core/application.h b/Telegram/SourceFiles/core/application.h index 9ee19e0d9..48a2512d4 100644 --- a/Telegram/SourceFiles/core/application.h +++ b/Telegram/SourceFiles/core/application.h @@ -387,7 +387,7 @@ private: std::unique_ptr _notifications; using MediaControlsManager = Media::SystemMediaControlsManager; - const std::unique_ptr _mediaControlsManager; + std::unique_ptr _mediaControlsManager; const std::unique_ptr _downloadManager; const std::unique_ptr _domain; const std::unique_ptr _exportManager; diff --git a/Telegram/SourceFiles/media/player/media_player_instance.cpp b/Telegram/SourceFiles/media/player/media_player_instance.cpp index eff518de7..377d611f2 100644 --- a/Telegram/SourceFiles/media/player/media_player_instance.cpp +++ b/Telegram/SourceFiles/media/player/media_player_instance.cpp @@ -765,6 +765,7 @@ auto Media::Player::Instance::seekingChanges(AudioMsgId::Type type) const not_null instance() { Expects(SingleInstance != nullptr); + return SingleInstance; }