# MiniPlayer 简洁多平台视频/音频播放器,支持 macOS、iPhone、iPad。 ## 功能 - 播放大多数视频/音频格式 (MP4, MKV, AVI, MOV, MP3, FLAC, WAV, OGG, AAC 等) - 支持 M3U8 流媒体播放 - 音轨切换 - 全屏播放 - 播放列表管理(拖拽排序、删除) - 自动播放下一首 - 单曲循环 / 列表循环 / 不循环 - 快进快退 10 秒 - 本地文件 + URL 流媒体双入口 ## 系统要求 - macOS 14+ (Sonoma) - iOS / iPadOS 17+ - Xcode 15+ ## 构建 ```bash # 安装 XcodeGen(如未安装) brew install xcodegen # 生成项目并打开 bash setup.sh ``` 或在 Xcode 中:File → New → Project → Multiplatform → App,将 Sources/ 目录的文件添加进去。 ## 快捷键 | 快捷键 | 功能 | |--------|------| | Space | 播放/暂停 | | → / ← | 快进/快退 10 秒 | | ⌘→ / ⌘← | 下一个/上一个 | | ⌘F | 全屏切换 | | ESC | 退出全屏 | ## 架构 ``` Sources/ ├── MiniPlayerApp.swift # App 入口 ├── ContentView.swift # 主布局 (NavigationSplitView) ├── PlayerView.swift # 视频显示 + 控制层 ├── PlaylistView.swift # 播放列表侧边栏 ├── PlayerEngine.swift # AVPlayer 播放引擎 ├── PlayerLayerView.swift # 跨平台视频渲染层 └── Models.swift # 数据模型 ``` - SwiftUI + AVFoundation - 单一代码库,`#if os(iOS)` / `#if os(macOS)` 处理平台差异 - AVPlayerLayer 自定义渲染(比 VideoPlayer 更可控)