yl_player_apple

Shared endorsed iOS and macOS implementation for yl_player 0.2. Applications should depend on yl_player; Flutter registers this package on both Apple platforms. Deployment floors are iOS 15.0 and macOS 12.0 for CocoaPods and Swift Package Manager.

The package contains one typed registry/session lifecycle, AVPlayer routes, controlled HLS loading, managed Matroska/FLV/MPEG-TS fallback, VideoToolbox and AudioToolbox output, and one combined FFmpeg bridge XCFramework. AVPlayer handles HLS and native progressive media where policy permits. Package-owned fallback also handles VOD HEVC-in-MPEG-TS media playlists, inspected Matroska, and network FLV with the codec and timing limits in the support matrix.

Apple managed networking is available only on the owned Matroska/FLV and supported MPEG-TS HLS byte routes. Bounded buffering uses one Player-wide assigned-byte ledger and is available only on the managed fallback. Hardware-required video needs positive VideoToolbox evidence before commit; AVPlayer cannot supply that evidence. Plugin-managed audio uses process-wide ownership leases, with iOS media-playback session/category management and macOS no-global-session behavior. See policy semantics for enforcement and transition restrictions.

The combined XCFramework contains iOS device, iOS Simulator, and universal macOS slices. It uses FFmpeg 9.0.1 only for Matroska/FLV/MP4/MPEG-TS demuxing, packet parsing, and DCA audio decoding; networking and video decode remain package/system owned. Binary redistributors must keep THIRD_PARTY_NOTICES.md, LICENSES/FFmpeg-LGPL-2.1-or-later.txt, the artifact lock, and replacement scripts. The notice documents verification and exact-toolchain rebuild flows.

Focused native and Flutter evidence exists for iOS Simulator and native macOS, including strict-policy rejection and controlled hardware paths. Physical iOS, minimum-OS, native Intel decoding, endurance, profiling, full consumer, and release matrices remain pending final acceptance.

Libraries

yl_player_apple