System Media Routing (Casting Beyond AirPlay)
import AVSystemRouting is a new iOS 27 framework (iOS only — no macOS/visionOS/tvOS/watchOS/Mac Catalyst) that lets a media app route playback to non-AirPlay system routes — third-party casting targets such as Google Cast / Chromecast and DLNA — surfaced in the same system route picker and Control Center as AirPlay. Instead of bundling a per-vendor cast SDK, your app adopts one Apple API and drives playback through a uniform interface.
Availability is narrow and in flux
Reportedly driven by the EU Digital Markets Act, this capability is likely region-gated (EU) and beta in the Xcode 27 betas. Treat third-party routes as may or may not be present: always #available-gate and keep your existing AirPlay / in-app cast path as the fallback.
When to Use
Use this skill when you're:
- Casting to non-AirPlay devices (Chromecast, DLNA, …) without bundling each vendor's cast SDK
- Making playback follow a route the user picked from the system picker / Control Center, and controlling or observing that remote playback
For AirPlay specifically, the existing AVRoutePickerView + AVPlayer path still applies — AVSystemRouting is the addition for third-party protocols.
Example Prompts
- "How do I cast to Chromecast on iOS 27 without the Google Cast SDK?"
- "Support non-AirPlay casting / DLNA as a system route."
- "Respond when the user picks a third-party media route and control playback."
- "What's the difference between AVSystemRouteSession
.playerand.applicationmodes?"
What This Skill Provides
- Explicit adoption model – observe
AVSystemRouteControllerevents, and on an activate event start anAVSystemRouteSessionon the route (playback is not auto-routed) LaunchModeguidance –.player(hand a URL to the system media player on the device) vs.application(companion app + bidirectionaldataChannel)playbackControlvsdataChannel– AVKit'sAVInterfaceControllablefor standard playback control/observation, or rawDataexchange for custom protocols- Consumer vs provider – your app is the consumer (no extension); a casting-protocol vendor ships the route-provider extension.
AVSystemRouteController.supportedExtensionAvailablereports whether one is installed - Availability gating –
#available(iOS 27, *)plus asupportedExtensionAvailablecheck, with an AirPlay fallback
Related
- Now Playing – Lock Screen / Control Center metadata and remote commands for the content you route
- avfoundation-ref – the
AVPlayer/ AirPlay path AVSystemRouting complements