diff --git a/Telegram/SourceFiles/media/player/media_player_instance.cpp b/Telegram/SourceFiles/media/player/media_player_instance.cpp index e150eb08b3..214f1252cb 100644 --- a/Telegram/SourceFiles/media/player/media_player_instance.cpp +++ b/Telegram/SourceFiles/media/player/media_player_instance.cpp @@ -189,14 +189,16 @@ void Instance::setCurrent(const AudioMsgId &audioId) { } } -void Instance::clearStreamed(not_null data) { +void Instance::clearStreamed(not_null data, bool savePosition) { if (!data->streamed || data->streamed->clearing) { return; } data->streamed->clearing = true; - SaveLastPlaybackPosition( - data->current.audio(), - data->streamed->instance.player().prepareLegacyState()); + if (savePosition) { + SaveLastPlaybackPosition( + data->current.audio(), + data->streamed->instance.player().prepareLegacyState()); + } data->streamed->instance.stop(); data->isPlaying = false; requestRoundVideoResize(); @@ -414,7 +416,7 @@ void Instance::playStreamed( const auto data = getData(audioId.type()); Assert(data != nullptr); - clearStreamed(data); + clearStreamed(data, data->current.audio() != audioId.audio()); data->streamed = std::make_unique( audioId, std::move(shared)); diff --git a/Telegram/SourceFiles/media/player/media_player_instance.h b/Telegram/SourceFiles/media/player/media_player_instance.h index d5472e40f5..be8aa3a7df 100644 --- a/Telegram/SourceFiles/media/player/media_player_instance.h +++ b/Telegram/SourceFiles/media/player/media_player_instance.h @@ -225,7 +225,7 @@ private: not_null data, Streaming::Error &&error); - void clearStreamed(not_null data); + void clearStreamed(not_null data, bool savePosition = true); void emitUpdate(AudioMsgId::Type type); template void emitUpdate(AudioMsgId::Type type, CheckCallback check);