> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://fastpix.com/docs/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://fastpix.com/docs/_mcp/server.

# iOS Player SDK: sideloaded subtitles, fullscreen rotation, and precision seek

> The FastPix iOS Player SDK adds sideloaded external subtitles, fullscreen rotation with video fill modes, and precision seeking with scrub coalescing and frame stepping.

The FastPix iOS Player SDK adds three capabilities for richer playback control: sideloaded subtitles, fullscreen rotation that reports what actually happened, and precision seeking.

What's new:

* **Sideload external subtitles**: register a WebVTT or SubRip file that is not in the HLS manifest, served from your own storage, and select it alongside in-manifest tracks. SubRip is converted to WebVTT on the device, registration is synchronous with no I/O, and load faults are reported through the delegate. External cues render through the host, so you draw them yourself. See [Sideload external subtitles](/docs/ios-player/sideload-external-subtitles).

* **Rotate video for fullscreen**: rotation is requested through `UIWindowScene.requestGeometryUpdate` (public API, iOS 16+, no private KVC), and the SDK reads back the orientation the system actually settled on. Every request, granted or refused, is reported with a reason, and `videoFillMode` chooses how the picture fills the frame. See [Rotate video for fullscreen](/docs/ios-player/rotate-video-for-fullscreen).

* **Seek with precision**: ask how precisely a seek should land with `.exact` or `.nearestKeyframe(tolerance:)`, then read back where it actually landed, computed in rational media time. Scrub gestures coalesce into a single seek, frame stepping refuses with a typed reason instead of guessing, and wall-clock and live-edge seeking are supported for date-addressable live streams. See [Seek with precision](/docs/ios-player/seek-with-precision).