Crash in MediaSoundComponent UpdatePlayer Function

MediaComponent UpdatePlayer Function:
If the MediaPlayer is a nullptr the SharedPtr to the SampleQueue get’s reset (so it’s invalid). The WeakPtr to the CurrentPlayerFacade will stay the same.
If setting the MediaPlayer to the same one as before, GetPlayerFace() will return the same value as CurrentPlayerFacade. This means, that a new SampleQueue won’t be created. Since it is still invalid check(SampleQueue.IsValid()); will crash the game.

FIX: Insert CurrentPlayerFacade.Reset(); after SampleQueue.Reset(); at the beginning.

CRASH LOG:

LoginId:
EpicAccountId:

Assertion failed: SampleQueue.IsValid() [File:D:\Build\++UE4+Release-4.18+Compile\Sync\Engine\Source\Runtime\MediaAssets\Private\Assets\MediaSoundComponent.cpp] [Line: 60]

UE4Editor_Core!FDebug::AssertFailed() [d:\build\++ue4+release-4.18+compile\sync\engine\source\runtime\core\private\misc\assertionmacros.cpp:414]
UE4Editor_MediaAssets!UMediaSoundComponent::UpdatePlayer() [d:\build\++ue4+release-4.18+compile\sync\engine\source\runtime\mediaassets\private\assets\mediasoundcomponent.cpp:60]
UE4Editor_Engine!FActorComponentTickFunction::ExecuteTickHelper<<lambda_a8128609955b5bb0ccb5da311e0c1d1a> >() [d:\build\++ue4+release-4.18+compile\sync\engine\source\runtime\engine\classes\gameframework\actor.h:3100]
UE4Editor_Engine!FActorComponentTickFunction::ExecuteTick() [d:\build\++ue4+release-4.18+compile\sync\engine\source\runtime\engine\private\components\actorcomponent.cpp:794]
UE4Editor_Engine!FTickFunctionTask::DoTask() [d:\build\++ue4+release-4.18+compile\sync\engine\source\runtime\engine\private\ticktaskmanager.cpp:273]
UE4Editor_Engine!TGraphTask<FTickFunctionTask>::ExecuteTask() [d:\build\++ue4+release-4.18+compile\sync\engine\source\runtime\core\public\async\taskgraphinterfaces.h:784]
UE4Editor_Core!FNamedTaskThread::ProcessTasksNamedThread() [d:\build\++ue4+release-4.18+compile\sync\engine\source\runtime\core\private\async\taskgraph.cpp:651]
UE4Editor_Core!FNamedTaskThread::ProcessTasksUntilIdle() [d:\build\++ue4+release-4.18+compile\sync\engine\source\runtime\core\private\async\taskgraph.cpp:571]
UE4Editor_Engine!FTickTaskSequencer::ReleaseTickGroup() [d:\build\++ue4+release-4.18+compile\sync\engine\source\runtime\engine\private\ticktaskmanager.cpp:559]
UE4Editor_Engine!FTickTaskManager::RunTickGroup() [d:\build\++ue4+release-4.18+compile\sync\engine\source\runtime\engine\private\ticktaskmanager.cpp:1454]
UE4Editor_Engine!UWorld::RunTickGroup() [d:\build\++ue4+release-4.18+compile\sync\engine\source\runtime\engine\private\leveltick.cpp:760]
UE4Editor_Engine!UWorld::Tick() [d:\build\++ue4+release-4.18+compile\sync\engine\source\runtime\engine\private\leveltick.cpp:1420]
UE4Editor_UnrealEd!UEditorEngine::Tick() [d:\build\++ue4+release-4.18+compile\sync\engine\source\editor\unrealed\private\editorengine.cpp:1659]
UE4Editor_UnrealEd!UUnrealEdEngine::Tick() [d:\build\++ue4+release-4.18+compile\sync\engine\source\editor\unrealed\private\unrealedengine.cpp:396]
UE4Editor!FEngineLoop::Tick() [d:\build\++ue4+release-4.18+compile\sync\engine\source\runtime\launch\private\launchengineloop.cpp:3296]
UE4Editor!GuardedMain() [d:\build\++ue4+release-4.18+compile\sync\engine\source\runtime\launch\private\launch.cpp:166]
UE4Editor!GuardedMainWrapper() [d:\build\++ue4+release-4.18+compile\sync\engine\source\runtime\launch\private\windows\launchwindows.cpp:134]
UE4Editor!WinMain() [d:\build\++ue4+release-4.18+compile\sync\engine\source\runtime\launch\private\windows\launchwindows.cpp:210]
UE4Editor!__scrt_common_main_seh() [f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:253]
kernel32
ntdll

Good catch, Felix! I fixed this for MediaTextures in 4.18.1, but missed this one in MediaSoundComponent. I’ll merge your changes, thanks!

Jira UE-52594, 4.18.2 Fix CL# 3767847, Dev-Sequencer Fix CL# 3767843