
Kinrox 推出 macOS 极简播放器,可用 iPhone 遥控
来源标题:Show HN: Kinrox – Spotify player in 196 MB RAM, Mac video player, iPhone remote
Kinrox 是一款 macOS 极简视频播放器,并配有原生 iPhone 遥控功能。用户在 Mac 上打开影片后,可通过局域网在沙发上用 iPhone 控制播放;应用不含后端、账号和遥测,本地视频与局域网遥控无需联网即可使用。
以下正文由 AI 翻译自 Hacker News 最新(原文版权归原站所有),可能存在偏差,重要内容请以原文为准。
Kinrox 是一款极简的 macOS 视频播放器,配有原生 iPhone 遥控器。在 Mac 上打开电影,就能坐在沙发上通过局域网控制播放。没有 Kinrox 后端、Kinrox 账号、分析统计或遥测数据。Mac 应用包含一个可选的 Spotify 连接;即使没有网络,本地视频和局域网遥控依然可用。
本地视频播放支持 MP4 和 MKV,由 libmpv、OpenGL 和 VideoToolbox 硬件加速提供支持。玻璃质感控件、键盘快捷键、原生全屏、拖放操作。最近文件、按自然顺序排序的文件夹播放列表,以及自动播放下一文件。Mac 端音轨/字幕选择、递归发现外部字幕/音轨、文件夹搜索,以及记住下一集的偏好设置。系统媒体键和“正在播放”集成。
从 0.3.0 起,Mac 更新提醒通过 Sparkle 2 实现:欢迎界面上的横幅和暂停时的胶囊形提示。计划检查每天读取公开的 HTTPS appcast,不包含唯一标识符或系统配置文件;更新只在用户选择安装时下载。
iPhone 通过 Bonjour 发现、六位 PIN 码配对、加密命令、Keychain 令牌存储和重新连接。遥控播放、跳转、音量、全屏和最近文件控制。Mac 上的 Matrix 屏保,在支持屏保的配套版本中提供控制:下落的绿色代码、激活时暂停电影、按 Esc 退出。共享本地化,支持 30 种语言,回退到英语。
项目状态
Mac 播放器和真正的 iPhone 遥控器已通过 M5 实现。当前独立 Mac 版本为 0.5.5,适用于 Apple Silicon 和 macOS 14+:下载 DMG 或阅读发行说明。安装程序捆绑了 libmpv 及其依赖项,使用 Developer ID 签名,并经过 Apple 公证。Homebrew 仅用于默认开发环境。使用 Mac 0.2.0 或更早版本的用户需手动安装一次 0.3.0,以启用未来的更新提醒。iPhone App Store 版本保持独立;遥控器可从源代码构建。
Mac 版本:0.5.5,构建 15。参见发行说明。
音乐模式包括 Spotify 资料库浏览、带撤销功能的收藏、本地队列和 iPhone 控制。从 0.5.0 起,播放使用 Spotify Soloist,并且可以在 Spotify.app 完全关闭的情况下工作。设置需要 Spotify Premium、你自己的开发者 Client ID、个人 Soloist API 密钥,以及在 iPhone 上从 Spotify 进行一次配对。该引擎直接从 Spotify 下载,需要定期更新;它不随 Kinrox 捆绑。设置、限制和实测性能见发行说明和 Soloist 验证。
kinrox-cli 可执行文件是一个占位符;其实现是可选任务。网络流、自定义本地视频播放列表和播放位置记忆不在初始范围内。架构和路线图见 AGENTS.md。
播放器还会在视频出现或消失时更新当前文件夹播放列表,包括 iPhone 上的“下一个/上一个”可用性。临时下载后缀(.part、.crdownload、.!qB)会被排除,直到重命名为视频文件名。如果下载器直接写入最终文件名,Kinrox 无法确定该下载是否完成。在最终 EOF 检查之后到达的视频会启用“下一个”,但不会开始播放。
需要 Xcode 26.5、Swift 6 和 XcodeGen 2.46.0 或更新版本。最低部署目标——macOS 14 和 iOS 17。构建目标为 arm64。播放器需要 /opt/homebrew 中的 libmpv 和头文件,测试媒体需要 ffmpeg。脚本不会自动安装依赖项。当前的 Homebrew libmpv 是为 macOS 26 构建的。发行版则使用固定的便携式库;参见发行运行手册。本次会话中的运行时测试是在 macOS 26.5.2 上进行的;最低版本检查覆盖每个捆绑的 Mach-O 库。
如果命令行依赖项尚不可用,请安装它们:
brew install xcodegen mpv pkg-config ffmpeg
必须安装 Xcode 并将其选为活动开发者目录。Mac 遥控配对需要 Apple Development 签名和匹配的 macOS 配置文件。iOS 模拟器构建不需要开发者团队;在物理 iPhone 上安装需要设备签名。
克隆后,如果本地签名配置不存在,请创建它:
cp -n Config/Signing.local.xcconfig.example Config/Signing.local.xcconfig
在该文件中设置你自己的团队和 bundle identifier 前缀,并按照签名运行手册配置 Mac 配置文件。
然后,从项目根目录依次运行:
./Scripts/check-env.sh
./Scripts/generate.sh
bash Scripts/make-test-media.sh
swift test --package-path Packages/KinroxMusic
swift test --package-path Packages/RemoteProtocol
xcodebuild -workspace Kinrox.xcworkspace -scheme PlayerMac
-configuration Debug -destination 'platform=macOS,arch=arm64'
-derivedDataPath DerivedData build test
xcodebuild -workspace Kinrox.xcworkspace -scheme RemoteiOS
-destination 'platform=iOS Simulator,name=iPhone 17'
-derivedDataPath DerivedData build test
如果 iPhone 17 不可用,请从 xcrun simctl list devices available 中选择一个已安装的模拟器并更新目标。包测试可以独立于应用签名运行。本地传输测试需要本地网络访问。播放测试使用合成媒体,并将 Kinrox 的音量设置为零;不要为了测试而更改 Mac 系统音量。
open DerivedData/Build/Products/Debug/Kinrox.app
通过 ⌘O 打开视频,将其拖入窗口,或拖放到 Dock 图标上。键位绑定:空格——暂停,←/→——5 秒,⇧←/⇧→——30 秒,↑/↓——音量,⌘←/⌘→——文件夹中的相邻文件,F 或双击——全屏。使用字幕气泡按钮或音频/字幕菜单选择轨道。选择“屏保”→“Matrix”可在播放器上显示下落的代码。正在播放的电影会先暂停。退出提示在三秒后消失;按 Esc 退出 Matrix,同时保留电影的暂停位置和全屏状态。iPhone 遥控器有一个“屏保”部分,带有启动/停止控制。参见屏保验证。
(原文较长,此处译出前 6000 字,完整内容请点「打开原文」。)
正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。