From 3af0c37c6b6291dad8ce2553b2fb30b36af021cb Mon Sep 17 00:00:00 2001 From: Alexander Bushnev Date: Mon, 3 May 2021 23:04:43 +0200 Subject: [PATCH] Fix video player volume level changing Bug: Sometimes changing of the volume level or mute/unmute has no effect. It happens because Fader::onTimer get a current volume level from the Mixer, but it gets an event about the volume modification from the settings. Bug appear when the method onTimer calling between updating of the settings and the Mixer volume. Solution: Updating the Mixer volume before the settings. (maybe will be better to get the volume level from the settings in place of the Mixer, but I am not sure about other side effects of this) --- .../media/view/media_view_overlay_widget.cpp | 10 +++------- .../SourceFiles/media/view/media_view_overlay_widget.h | 1 - 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/Telegram/SourceFiles/media/view/media_view_overlay_widget.cpp b/Telegram/SourceFiles/media/view/media_view_overlay_widget.cpp index a0ff46f66..794507b75 100644 --- a/Telegram/SourceFiles/media/view/media_view_overlay_widget.cpp +++ b/Telegram/SourceFiles/media/view/media_view_overlay_widget.cpp @@ -1255,12 +1255,6 @@ void OverlayWidget::showSaveMsgFile() { File::ShowInFolder(_saveMsgFilename); } -void OverlayWidget::updateMixerVideoVolume() const { - if (_streamed) { - Player::mixer()->setVideoVolume(Core::App().settings().videoVolume()); - } -} - void OverlayWidget::close() { Core::App().hideMediaView(); } @@ -2962,9 +2956,11 @@ void OverlayWidget::playbackControlsSeekFinished(crl::time position) { } void OverlayWidget::playbackControlsVolumeChanged(float64 volume) { + if (_streamed) { + Player::mixer()->setVideoVolume(volume); + } Core::App().settings().setVideoVolume(volume); Core::App().saveSettingsDelayed(); - updateMixerVideoVolume(); } float64 OverlayWidget::playbackControlsCurrentVolume() { diff --git a/Telegram/SourceFiles/media/view/media_view_overlay_widget.h b/Telegram/SourceFiles/media/view/media_view_overlay_widget.h index aaf825706..6ba283a90 100644 --- a/Telegram/SourceFiles/media/view/media_view_overlay_widget.h +++ b/Telegram/SourceFiles/media/view/media_view_overlay_widget.h @@ -234,7 +234,6 @@ private: void refreshLang(); void showSaveMsgFile(); - void updateMixerVideoVolume() const; struct SharedMedia; using SharedMediaType = SharedMediaWithLastSlice::Type;