Hacker News 中文摘要

RSS订阅

Show HN: Petrichor – 一款免费、开源、离线的 macOS 音乐播放器 -- Show HN: Petrichor – a free, open-source, offline music player for macOS

文章摘要

Petrichor 是一款专为 macOS 设计的离线音乐播放器,用户可以通过 GitHub 下载并安装。该项目提供了详细的下载链接和状态信息,并遵循开源许可证,适合需要在本地播放音乐的用户使用。

文章总结

项目概述

Petrichor 是一款专为 macOS 设计的离线音乐播放器,旨在为用户提供一个功能丰富且易于使用的本地音乐管理工具。该项目由 kushalpandya 开发,并托管在 GitHub 上。

主要功能

  1. 离线音乐播放:支持本地音乐文件的播放和管理。
  2. 音乐库管理:用户可以映射音乐文件夹,并在有序视图中浏览音乐库。
  3. 播放列表管理:支持创建播放列表,并交互式管理播放队列。
  4. 文件夹视图:允许用户通过文件夹视图浏览音乐。
  5. 侧边栏快捷访问:支持将几乎任何内容(如专辑、艺术家等)固定到侧边栏,方便快速访问。
  6. 导航功能:右键点击曲目可快速跳转到其专辑、艺术家、年份等信息。
  7. macOS 集成:支持原生 macOS 功能,如菜单栏和 Dock 播放控制,以及深色模式。
  8. 快速搜索:支持在包含数千首歌曲的大型音乐库中快速搜索。

计划功能

  • 智能播放列表:支持用户配置的条件过滤器。
  • AirPlay 2 支持:支持通过 AirPlay 2 进行音乐投射。
  • 迷你播放器和全屏模式:提供更多播放界面选项。
  • 自动应用内更新:支持应用内自动更新。
  • 在线专辑和艺术家信息获取:支持从在线资源获取专辑和艺术家信息。

系统要求

  • 操作系统:macOS 14 或更高版本。

安装步骤

  1. 前往 Releases 页面,下载最新的 .dmg 文件。
  2. 打开 .dmg 文件,将应用图标拖拽到“应用程序”文件夹中。
  3. 在“应用程序”中,右键点击 Petrichor > 打开

开发背景

开发者因对现有 macOS 离线音乐播放器(如 Swinsian)的功能不足感到不满,决定开发 Petrichor。该项目不仅满足了开发者的个人需求,还帮助其学习了 Swift 和 macOS 应用开发。

技术实现

  • 开发语言:使用 Swift 和 SwiftUI 构建,以实现最佳的 macOS 集成。
  • 数据库:使用 SQLite 数据库(通过 GRDB 库)存储音乐库信息。
  • 文件处理:Petrichor 不会修改用户的音乐文件,仅从添加的目录中读取数据。
  • 搜索功能:基于 SQLite FTS5 实现快速搜索,并支持内存搜索作为备用方案。
  • 播放功能:使用 AVFoundation 框架实现音乐播放。

数据库架构

Petrichor 的数据库架构包括多个表,如 foldersartistsalbumstracks 等,用于管理音乐库的各个部分。图片

开发环境设置

  1. 确保运行 macOS 14 或更高版本。
  2. 安装 Xcode
  3. 安装 xcprettycreate-dmg 以构建 .dmg 安装包。

许可证

Petrichor 采用 MIT 许可证

致谢

  • Paul Hudson:感谢其提供的 Swift 教程。
  • create-dmg:感谢 Sindre Sorhus 提供的工具。
  • Claude by Anthropic:感谢其在项目开发中的协助。

截图

图片 图片 图片 图片 图片 图片

评论总结

评论总结:

  1. 正面评价与期待

    • 许多用户对应用的发布表示祝贺,并赞赏其界面设计和功能。
      • "Congratulations on the release! This looks really cool!"(“祝贺发布!这看起来真的很酷!”)
      • "I love the clean, modern UI."(“我喜欢这种干净、现代的界面。”)
    • 部分用户希望应用能支持iOS平台,并实现与iPhone的同步功能。
      • "Pleaaaaaaaase make this available on iOS."(“请务必在iOS上发布。”)
      • "I truly hope you’ll bring this to iOS."(“我真心希望你能把它带到iOS。”)
  2. 功能需求与改进建议

    • 用户对高保真音频格式(如FLAC、ALAC)的支持表示关注。
      • "Does it have FLAC support (or other high res audio formats)?"(“它支持FLAC或其他高解析音频格式吗?”)
      • "Will it support playing lossless files in FLAC or ALAC format?"(“它会支持播放FLAC或ALAC格式的无损文件吗?”)
    • 部分用户希望应用能支持更多平台(如MacPorts)和功能(如m4b有声书、AirPlay)。
      • "Please consider publishing on MacPorts too."(“请考虑也在MacPorts上发布。”)
      • "Airplay is kind of a must."(“Airplay几乎是必备功能。”)
  3. 与其他应用的比较

    • 一些用户将应用与iTunes、Winamp、Swinsian等经典音乐播放器进行比较,并提出了对“老派iTunes”体验的期待。
      • "How’s this compare to the native macos music app formerly known as itunes?"(“这与之前被称为iTunes的macOS原生音乐应用相比如何?”)
      • "For me, the ideal music player UI started and ended with Winamp."(“对我来说,理想的音乐播放器界面始于Winamp,也终于Winamp。”)
  4. 质疑与问题

    • 部分用户对应用的系统要求(如macOS 14)和安全性(如恶意软件警告)表示担忧。
      • "That’s a pretty high bar for a Mac app."(“这对Mac应用来说门槛相当高。”)
      • "Get a malware warning when trying to open disk image."(“尝试打开磁盘映像时收到恶意软件警告。”)
  5. 音乐收藏与习惯的讨论

    • 有用户提到流媒体时代音乐收藏习惯的改变,并询问如何合法地支持艺术家。
      • "How do people collect music nowadays? Is there a legit way (fairly compensating artists) to do it?"(“如今人们如何收藏音乐?有没有合法的方式(公平地补偿艺术家)?”)

总结:
评论中,用户对应用的设计和功能普遍持积极态度,但也提出了对高保真音频支持、跨平台兼容性、功能扩展等方面的需求。同时,部分用户对系统要求和安全性表示担忧,并对音乐收藏习惯的变迁展开了讨论。