diff --git a/web/player.html b/web/player.html index d3d7808..6dc3064 100644 --- a/web/player.html +++ b/web/player.html @@ -524,11 +524,24 @@ // MPEG-TS streams (live or forced TS via ext param) // Checked BEFORE generic MP4/MKV to handle transcoded streams correctly if (ext === '.ts' || lowerUrl.includes('.ts')) { - log('Detected MPEG-TS (via extension or URL), using mpegts.js'); - const success = await playWithMpegTS(streamUrl); - if (!success) { - await playDirect(streamUrl); + log('Detected MPEG-TS (via extension or URL)'); + + // Check if mpegts.js is supported (may not work on mobile) + if (mpegts.isSupported()) { + log('Using mpegts.js'); + const success = await playWithMpegTS(streamUrl); + if (success) return; + log('mpegts.js failed, trying fallbacks...'); } + + // Fallback 1: Try HLS.js for better mobile compatibility + log('Trying HLS.js as fallback for MPEG-TS'); + const hlsSuccess = await playWithHLS(streamUrl); + if (hlsSuccess) return; + + // Fallback 2: Try direct play as last resort + log('Trying direct play as last resort'); + await playDirect(streamUrl); return; }