Expo Video Player

Please provide the following:

  1. SDK Version: 34
  2. Platforms(Android/iOS/web/all): Android

When playing a video on Android, if you skip or go back few seconds, or use the seek controller to go back and forth, the video will stop and become unresponsive to user interaction. We are using the same code on iOS and it works fine. We only had an iOS app but when we started getting into the Android platform, we noticed this issue.

How to produce this bug:

  • Make sure it’s an Android app using Expo SDK 33 or higher
  1. Load a video into the component from a remote URL
  2. Watch few seconds into the video and then skip few minutes in.
  3. Check if the player stopped responding, if it didn’t, keep doing it. You can use the seek controller too (if you want).

When it freezes, you can see the component doesn’t respond to anything. You can even change source of the player to a new video, and it won’t change.

There was another person that had a similar issue with Android and he posted a thread showcasing the bug but there were no replies to his thread and it auto-closed.

At this moment, if we can’t fix this bug, we have no option to eject and go to react-native-video module. I really hope there is a fix for this.

Just as an update to my issue, I recently revisited the AV Player and realised that a change that occurred between SDK 32 and SDK 33, either in the expo-av module or underlying exoplayer meant that setting Video props to be the result of an onPlaybackStatusUpdate call would re-render the video view and load a new instance of the video & player with each render cycle. This was not the behavior observed previously.

Following the old expo-av playlist example, I had set shouldPlay to be status.shouldPlay and this is what caused the application to be unresponsive.

1 Like