Search Issue Tracker

By Design

Votes

2

Found in

2020.3.42f1

2021.3.15f1

2022.1.24f1

2022.2.0b16

Issue ID

UUM-3213

Regression

No

[Android] VideoPlayer stuck on some devices

--

-

How to reproduce it:
1. Open the attached project "TESTVideo.zip"
2. Build and Run it on Android
3. Observe the video in an app

Expected result: Video doesn't stop after few seconds
Actual result: Video stops after few seconds

Reproducible with: 2019.4.30f1, 2020.3.18f1, 2021.1.21f1
Could not test with: 2021.2.0b12, 2022.1.0a8 (due to errors after upgrading and building a project)

Reproducible on:
VLNQA00331, Huawei P20 lite (ANE-LX1), Android 9, CPU: HiSilicon Kirin 659, GPU: Mali-T830 (video stops after few seconds)

Not reproducible on:
VLNQA00122, Samsung Galaxy S9 (SM-G960F), Android 10, CPU: Snapdragon 855 SM8150, GPU: Mali-G72
VLNQA00321, Xiaomi MI 9 (MI 9), Android 10, CPU: Snapdragon 855 SM8150, GPU: Adreno (TM) 640
VLNQA00285, Samsung Galaxy J4 Core (SM-J410F), Android 8.1.0, CPU: Snapdragon 425 MSM8917, GPU: Adreno (TM) 308
VLNQA00013 - Galaxy S6 Edge+ (SM-G928F), OS: 7.0.0, CPU: Exynos 7 Octa (7420), GPU: Mali-T760

  1. Resolution Note:

    Some devices are not powerful enough to play certain types of movies in the context of the Unity game engine. To make sure videos play smoothly, please make sure there are enough keyframes (one every 1-3 seconds). The video provided with this case has keyframe intervals of up to 10 seconds, making seeking operations quite costly.

    Additionally, the VideoPlayer settings in the project have the "skip on drop" option enabled, meaning any sync discrepancy will be compensated for by trying to seek ahead. But with keyframe intervals being as wide as described above, this operation could turn out to trigger the domino effect that makes the VideoPlayer unable to catch up. Turning this setting off will disable this behaviour and provide smooth playback (at the cost of possible desync with animations or audio over long periods of time).

    One final note is that the ability to play a video smoothly is conditional to the game iteration rate to be comfortably higher than the played video. In this case, the video is 30fps, so the game should be able to run at this frame rate without any hiccups, or else the longer iteration times will prevent the VideoPlayer from consuming enough frames per second to preserve sync.

Add comment

Log in to post comment

All about bugs

View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.