For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
StatusSupportDiscussionsLog inSign Up
Docs HomeAPI ReferenceVideo on DemandAI FeaturesLive StreamingVideo PlayerVideo DataCloud PlayoutRecipes
Docs HomeAPI ReferenceVideo on DemandAI FeaturesLive StreamingVideo PlayerVideo DataCloud PlayoutRecipes
  • Player SDKs
    • Introduction
  • Web player
    • Install the FastPix web player
    • Play uploaded videos
    • Handle playback errors
  • Android player
    • Install FastPix Android player
    • Set up the player
    • Play uploaded videos
    • Handle playback errors
  • iOS player
    • Install FastPix iOS player
    • Play uploaded videos
    • Handle playback errors
      • Changelog
  • Flutter player
    • Install FastPix Flutter player
    • Play uploaded videos
    • Handle playback errors
LogoLogo
StatusSupportDiscussionsLog inSign Up
On this page
  • [1.0.0] — Current version
  • [0.11.1]
  • [0.11.0]
  • [0.10.0]
  • [0.9.0]
  • [0.8.0]
  • [0.7.0]
  • [0.6.0]
  • [0.5.0]
  • [0.4.0]
  • [0.3.0]
  • [0.2.0]
  • [0.1.0]
iOS playerReference

Changelog

Was this page helpful?
Previous

Complete integration example

Next
Built with

All notable changes to the FastPix Player for iOS.

[1.0.0] — Current version

Adaptive Bitrate (ABR) and Resolution Switching

  • Added adaptive bitrate streaming (ABR) to automatically adjust video quality based on network conditions.
  • Enabled manual resolution switching, letting users select specific quality levels (for example, 240p, 480p, 720p) during playback.
  • Introduced QualityLevel model with properties: label, bitrate, resolution, and auto-mode indicator.
  • Added setupQualityManager(delegate:) to initialize and manage quality-related operations.
  • Added qualityDelegate for real-time quality change and availability updates.
  • Added getResolutionLevels() to fetch available quality levels dynamically from the stream.
  • Added getCurrentResolutionLevel() to retrieve the active quality level.
  • Added setResolutionLevel(_:) for manual switching between available quality levels.
  • Added resetToAuto() to switch back to automatic ABR mode.
  • Implemented dynamic loading of quality levels after playback starts for accurate stream-based detection.
  • Introduced delegate callbacks: onQualityLevelsUpdated, onQualityLevelChanged, onQualitySwitching, onQualityLevelFailed.
  • Designed to work with custom player UI for OTT-style quality selectors (Auto / Manual modes).
  • Fully compatible with HLS streaming, buffering logic, and playlist-based playback.

[0.11.1]

Fixed

  • Fixed Swift Package Manager configuration.
  • Updated swift-tools-version to 5.10 to align with the latest Swift and Xcode versions.
  • Improved package compatibility with Xcode.

[0.11.0]

Enhanced spritesheet support

  • Added spritesheet-based timeline preview for private media.
  • Enabled spritesheet preview for DRM-protected content (FairPlay).
  • Improved thumbnail loading mechanism for secured playback URLs.
  • Ensured compatibility with token-based and signed URL playback flows.
  • Optimized preview rendering performance for smoother scrubbing across all content types.

[0.10.0]

  • Updated iOS Data Core SDK by updating the default metrics collection domain for improved endpoint reliability and infrastructure alignment.

[0.9.0]

Audio track switching

  • Added setPreferredAudioTrack(languageName:) to set a preferred audio language by display name (case-insensitive).
  • Preferred audio track is automatically applied on every playlist item change.
  • SDK resets preferred track selection state on each player attach for consistent behavior across playlist transitions.
  • Introduced FastPixAudioTrackDelegate with callbacks for track updates, changes, switching state, and errors.
  • Added getAudioTracks(), getCurrentAudioTrack(), and setAudioTrack(trackId:).
  • Falls back to the manifest default track if the preferred language isn’t available.

Subtitle track switching

  • Added setPreferredSubtitleTrack(languageName:) to set a preferred subtitle language by display name (case-insensitive).
  • Preferred subtitle track is automatically applied on every playlist item change.
  • SDK resets subtitle parser and selection state on each player attach to prevent stale cues.
  • Introduced FastPixSubtitleTrackDelegate with callbacks for tracks loaded, track change, cue change, and errors.
  • Added getSubtitleTracks(), getCurrentSubtitleTrack(), setSubtitleTrack(trackId:), and disableSubtitles().
  • Real-time subtitle cue delivery through onSubtitleCueChange(information:) with text, timestamp, and language code.
  • Built-in WebVTT parser that fetches and parses subtitle segments from HLS manifest-resolved playlist URLs.
  • Falls back to the manifest default track if the preferred language isn’t available.

[0.8.0]

Network handling

  • Added real-time network monitoring (Wi-Fi, Cellular, Offline).
  • Automatically pauses playback on network loss and resumes on reconnection (configurable).
  • Exposed network state callbacks for custom UI and handling.
  • Improved playback stability during buffering, stalls, and network switches.

Skip controls (Intro / Songs / Credits)

  • Added support for Skip Intro, Skip Songs, and Skip Credits using time-based skip segments.
  • Skip segments can be configured per asset or per FastPixPlaylistItem.
  • SDK automatically validates and applies skip ranges during playback.
  • Introduced SkipManager APIs to set, clear, and trigger skips.
  • Skip button visibility is managed by the SDK based on playback time.
  • Skip state resets automatically during playlist transitions.
  • Fully compatible with custom UI implementations.

[0.7.0]

Volume control

  • Added device-level volume support reflecting system volume changes from hardware buttons.
  • Introduced on-screen volume control APIs for custom sliders or gesture-based volume controls.
  • Added mute/unmute functionality with proper state handling.
  • Ensured volume slider UI and mute state stay synchronized with the player’s audio state.

Playback loop

  • Added playback loop support to automatically restart playback when the video ends.
  • Loop works across inline playback, full-screen, and Picture-in-Picture (PiP) modes.
  • Enabled configuration using isLoopEnabled. Disabled by default.

Autoplay

  • Added autoplay to start playback automatically once the media is ready.
  • Enabled configuration using isAutoPlayEnabled. Extends to playlist playback for automatic item transitions.
  • Disabled by default.

Playback speed control

  • Added playback speed control to dynamically adjust playback rate during runtime.
  • Supports multiple playback rates including slow-motion and fast-forward options.
  • Set, increment, decrement, or retrieve the current playback rate.
  • Changes apply instantly without interrupting playback or affecting buffering, quality, or audio sync.
  • Default speed is 1x (normal playback).

[0.6.0]

Forward and rewind controls

  • Added configurable seek increments through configureSeekButtons(enablePortrait:enableLandscape:forwardIncrement:backwardIncrement:).
  • Forward and rewind actions are synchronized with the player’s internal playback state and are automatically disabled during active seek bar scrubbing.
  • Improved interaction handling—controls remain visible during forward/rewind interactions, and auto-hide logic pauses during seek actions and resumes afterward.

[0.5.0]

Picture-in-Picture (PiP)

  • Enable PiP with enablePiP = true.
  • Check state with isPiPAvailable and isPiPActive.
  • Toggle with togglePiP() and observe through FastPixPiPStateChangedNotification.

Full-screen mode

  • Smooth inline-to-full-screen transitions using FastPixFullscreenManager.
  • Configure layout with configureConstraints(normal:fullscreen:).
  • Observe state through FastPixFullscreenStateChangedNotification.

Spritesheet and timeline preview

  • Show thumbnails on seek bar with loadSpritesheet(url:previewEnable:config:).
  • Clear with clearSpritesheet().
  • Fall back to timestamp-only preview with setFallbackMode(.timestamp).

[0.4.0]

  • Added fully customizable player controls.
  • Integrated custom play/pause button synced with the player’s internal playback state.
  • Introduced custom seek bar using FastPixSeekManager with real-time updates for current playback time, total duration, buffered time, and seek start/end events.
  • Added manual orientation handling for custom full-screen or embedded player UIs.
  • Built-in seek navigation improvements (seekForward(), seekBackward(), seekToPercentage()).
  • Custom UI elements can listen to playback and buffering updates through delegate callbacks.

[0.3.0]

  • Added playlist support.
  • Create and manage playlists with FastPixPlaylistItems.
  • Add playlists directly using addPlaylist().
  • Auto-play option (isAutoPlayEnabled) for automatic next-item playback.
  • Option to hide default controls (hideDefaultControls) for custom UI.
  • Playlist state notifications through NotificationCenter (FastPixPlaylistStateChanged).
  • Built-in navigation: next(), previous(), and jumpTo(index:).

[0.2.0]

  • Added DRM support through Apple FairPlay for content protection.

[0.1.0]

Added

  • Media playback: support for live and on-demand streaming through .m3u8 playback.
  • Token-based secure playback with playbackToken for secured streams.
  • Custom domain support for streaming from custom domains with optional secure access.
  • Audio track switching: automatic detection and switching of multiple audio tracks.
  • Resolution control: minimum (.atLeast270p), maximum (.upTo1080p), fixed (.set480p), and range-based configurations.
  • Rendition order customization: ascending or descending rendition selection.
  • Swift Package Manager support: installable through SPM using the repo URL.