This was reported on EPS that the function FMediaFoundationMovieStreamer::Init implemented in XboxCommonGDKMovieStreamer.cpp and WindowsMovieStreamer.cp always return true even if the call to OpenNextMovie(); returned false.
The customer reports that this cause startup Bink video to be skipped at startup. Looking at the code in \Engine\Source\Runtime\MoviePlayer\Private\DefaultGameMoviePlayer.cpp:
bool FDefaultGameMoviePlayer::PlayMovie() { ... for (TSharedPtr<IMovieStreamer, ESPMode::ThreadSafe> MovieStreamer : MovieStreamers) { if (MovieStreamer->Init(LoadingScreenAttributes.MoviePaths, LoadingScreenAttributes.PlaybackType)) { ActiveMovieStreamer = MovieStreamer; if (MovieViewportWeakPtr.IsValid()) { MovieViewportWeakPtr.Pin()->SetViewportInterface(MovieStreamer->GetViewportInterface().ToSharedRef()); } break; } } ... }
If the Init() function always return true, the next streamer (Bink) will never be visited and the startup movie will not be played.
The customer fixed that by changing the Init() function to return the result of OpenNextMovie():
bool FMediaFoundationMovieStreamer::Init(const TArray<FString>& MoviePaths, TEnumAsByte<EMoviePlaybackType> inPlaybackType) { ... return OpenNextMovie(); }
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-314754 in the post.
0 |
Component | UE - Media Framework |
---|---|
Affects Versions | 5.6 |
Created | Aug 20, 2025 |
---|---|
Updated | Aug 20, 2025 |