mpv-ios v0.1.1
Prebuilt libmpv XCFramework and MPVKit Swift Package for iOS.
Assets:
Libmpv.xcframework.zip— binary framework onlyMPVKit-v0.1.1.zip— full Swift Package (framework included)checksum.txt— SHA-256 checksum forbinaryTarget(url:checksum:)in a remote Package.swift
Added
- Touch gesture support in
mpv-ios-player, ported from mpv-android's
TouchGestures.kt: swipe-to-seek, swipe-to-adjust-volume,
swipe-to-adjust-brightness, and tap gestures (left/right fixed-seek,
center play/pause), plus the tap-to-toggle-controls fallback for plain
taps that don't trigger a gesture. New reusableMPVTouchGestures
headless gesture recognizer inMPVKit(no UIKit/SwiftUI dependency),
wired intoMPVPlayerView/PlayerViewModel(docs/RESEARCH.md#26). - Control Center/lock-screen media controls and Picture in Picture support,
withMediaSessionManager,PictureInPictureRenderer,
PictureInPictureCoordinator, and the required iOS background/rendering
integration (docs/RESEARCH.md#27). - Playlist management with loading, append, navigation, removal, movement,
clearing, shuffling, playlist UI, and Control Center next/previous-track
commands, using per-entry property reads and explicit refresh after
playlist-move(docs/RESEARCH.md#28). - Runtime hardware/software decoder selection with active-decoder
observation and a decoder picker integrated into the track-selection UI
(docs/RESEARCH.md#29). - Subtitle styling controls for delay, scale, position, text color, and
background color through a dedicatedSubtitleStyleSheet(docs/RESEARCH.md#30). - Video scaling and interpolation controls covering spatial/chroma/downscale/
temporal scaling, interpolation, aspect mode, zoom, rotation, panscan, and
unscaled-video behavior through a dedicatedVideoSettingsSheet
(docs/RESEARCH.md#31). - Persistent playback-position saving and removal using mpv's built-in
watch-later mechanism, triggered on stop and app backgrounding
(docs/RESEARCH.md#32). - A playback statistics overlay showing codec, resolution, FPS, hardware
decoder, bitrate, A/V sync, dropped frames, and cache state, with periodic
updates while visible (docs/RESEARCH.md#33). - Orientation controls with auto, landscape, portrait, and unlocked modes,
including tap-to-toggle and long-press selection backed by a new
AppDelegateorientation controller (docs/RESEARCH.md#34).
Fixed
MPVPlayer.swift:loadFile(_:mode:)was declared twice in the same
MPVCoreextension (an exact duplicate introduced when playlist
support was added), causing an "invalid redeclaration" compile error.
Removed the duplicate, kept the more fully-commented version under the
"Playlist" section (docs/RESEARCH.md#35).MPVPlayerView.swift: the drag-gesture handler called
touchGestures.touchMoved(at:), butMPVTouchGesturesdeclares it as
touchMoved(to:), causing an "incorrect argument label" compile error.
Fixed the call site to useto:(docs/RESEARCH.md#36).
Dependency versions pinned at this release:
| Dependency | Version |
|---|---|
| lua | 5.2.4 |
| unibreak | 7.0 |
| harfbuzz | 14.4.0 |
| fribidi | 1.0.16 |
| freetype | 2.14.3 |
| mbedtls | 3.6.5 |
| libxml2 | 2.15.4 |
| iOS minimum target | 13.0 |
| mpv (git ref) | master |
| ffmpeg (git ref) | master |
| dav1d (git ref) | master |
| libass (git ref) | master |
| libplacebo (git ref) | master |
See docs/RESEARCH.md for the full build/porting
log, and README.md for integration steps.