I’m utilizing expo-video with expo sdk 55 in a React Native app to play a brief intro clip inside a chat display from my aws s3 bucket. On all Indian gadgets it really works, however on European gadgets the video begins, performs for a few second, after which will get caught. There isn’t any seen error, and Sentry solely reveals regular playback occasions till the stall.
I’ve instrumented the participant and I can see this sequence in logs:
There isn’t any status_error, freeze_detected, or duration_mismatch within the affected runs.
The video is loaded from a distant MP4 URL, and the element seems roughly like this:
const participant = useVideoPlayer(videoSource, (participant) => {
participant.loop = false;
});
useEffect(() => {
participant.quantity = isChatAudioEnabled ? 1.0 : 0;
const statusSub = participant.addListener("statusChange", (payload) => {
if (payload?.error) {
// log error
}
});
const timeSub = participant.addListener("timeUpdate", ({ currentTime }) => {
// detect progress / freeze
});
participant.play();
return () => {
statusSub.take away();
timeSub.take away();
participant.pause();
};
}, [player, videoSource]);
AWS video is an mp4 with this
H264 Most important/Baseline
yuv420p
AAC LC
+faststart
moov at begin
The habits appears region-specific, as a result of it solely occurs on European gadgets. I’m attempting to find out whether or not that is doubtless:
-
a CDN / community / geo routing subject
-
a codec or distant media supply subject
-
a tool/participant quirk with expo-video
-
one thing associated to iOS area or locale
My questions are:
-
What are the very best methods to debug a video that stalls shortly after beginning in expo-video?
-
Can region-specific community/CDN habits trigger this sort of stall with out an specific participant error?
-
Are there recognized points with expo-video the place playingh can cease advancing and not using a
statusError? -
What additional diagnostics ought to I log to separate media supply issues from participant issues?
