AirPlay / Chromecast not working from lesson videos, anyone solved this?
Hi everyone π
We run a fitness community on FluentCommunity around 116 course videos, ~16k views/month. Our members follow 30-40 minute workouts at home, so watching on a TV instead of a phone is the main use case, not a bonus feature.
The problem: we keep getting support requests from members who can't cast lesson videos to their TV. What's interesting is that the reports come also from recent devices.
Videos are hosted on Bunny Stream and embedded in lessons with Bunny's standard iframe. Before posting I ruled out everything on the Bunny side:
- DRM (MediaCage) β off
- Embed view token auth + CDN token auth β both off
- Allowed domains β our domains +
*.gstatic.com(the one Chromecast needs) - "Block direct URL file access" β off, so referer-less requests from cast receivers are allowed
- AirPlay + Chromecast controls β both enabled in the player
- Embed URL β no
disableIosPlayerparameter
This is the embed as rendered in the lesson:
html
<iframe src="https://player.mediadelivery.net/embed/500044/[id]?autoplay=false&loop=false&muted=false&preload=true&responsive=true"
loading="lazy"
allow="accelerometer;gyroscope;autoplay;encrypted-media;picture-in-picture;fullscreen;"
allowfullscreen="true"></iframe>
My working theory is the ManagedMediaSource change: since iOS 17.1 Safari allows JS players to handle playback via MSE, and AirPlay is known to break when that happens, where before, iPhones were forced into native HLS and AirPlay always worked.
So, three questions:
- Does FluentCommunity wrap or sanitize third-party embeds in lessons β extra iframe layer, stripped
allowattributes, sandbox? If the embed ends up nested, are Permissions Policy directives passed down to the inner frame? - Does FluentPlayer handle AirPlay / Chromecast, and does it use native HLS on iOS or a JS player?
- Has anyone here got casting working reliably from lesson videos? If yes, what's your setup: Bunny, Vimeo, Cloudflare Stream, FluentPlayer, self-hosted? I'd rather copy something that's known to work than keep debugging blind.
Thanks π