iOS browsers only allow video playback in the HLS codec, so SmartVideo delivers the HLS version of a video file to users of that browser. **On a real device, this works without issue. **
However, when an iOS device is emulated using a tool like Chrome DevTools, SmartVideo checks to see if the browser supports HLS. The emulated browser indicates to SmartVideo that it does support HLS, but the browser that is actually being used (in this case Chrome for desktop) does not support HLS. This renders the video unviewable.
If you can’t test on a physical device, we recommend using a service like BrowserStack that allows you to test remotely on a real device. This will help you avoid emulation-based issues that aren’t representative of a real person’s experience on your website.
A note on real iOS Safari 15 devices
If you’re testing on an actual older iPhone or iPad running iOS Safari 15, you may notice the player uses a simplified control bar (play, progress, remaining time, fullscreen, and a kebab overflow menu) instead of the full floating glass control pill. This is intentional - iOS 15 doesn’t support the modern CSS features the new control bar relies on, so the player falls back to a minimal-but-functional layout. Picture-in-Picture, playback rate, captions, and volume all still work; they just live inside the overflow menu. This is a real-device behavior, not an emulator artifact.