跳到主要内容

本周项目:Voltra

·阅读时长 6 分钟

本周我们采访了 Aprile ElcichPaolo Fragomeni,与他们聊了聊 Voltra,一个基于 Electron 的音乐播放器。


Voltra 是什么?

Voltra 是一款为想要拥有自己音乐的人们设计的音乐播放器。它也是一个商店,你可以根据你已有的音乐来发现和购买新音乐。它是无广告的,支持桌面和移动跨平台。它也不会监视你。

voltra-artistview

Voltra 是为谁设计的?

任何听音乐的人。

是什么促使您创建 Voltra?

广播一直拥有大量听众。它正从空中电波转向互联网。现在你可以按需租赁音乐——这是广播的复兴!因此涌现了许多新产品和服务,但流媒体广播仍然让别人控制着你的音乐以及你体验音乐的方式。

我们想要一个完全专注于你拥有的音乐的产品。一个让你轻松地直接从艺术家或厂牌那里发现和购买新音乐的产品。

有免费版本吗?

桌面播放器是完全免费的。销售你的音乐也是免费的!我们没有广告支持。

由于该应用是免费的,我们将来可能会将其开源。目前我们没有足够的精力来管理。我们也有非常具体的功能想法和我们想要的方向。我们有一个活跃的 Beta 社区,我们非常重视他们的反馈。

你们如何盈利?

我们有高级功能!

我们的Voltra 音频存档是一项专为音乐设计的云备份服务。我们不压缩或共享数据块。您的音乐收藏会为您进行物理备份。

对于艺术家和厂牌,我们的专业会员提供工具帮助他们触达更多相关受众,例如分析数据和专业的艺术家网页。

Voltra 有何不同?

设计和易用性对我们来说非常重要。我们希望为听众提供无干扰的聆听体验!市面上有一些有趣的音乐播放器和商店。但其中许多比其创造者意识到的更高级且更难使用。我们希望 Voltra 能够被尽可能多的人使用。

我们也不从艺术家或厂牌那里抽取分成。这是我们关键的差异化优势。这一点非常重要,因为它降低了艺术家将其音乐推向市场的门槛。

您做出了哪些设计和技术决策?

在设计 Voltra 时,我们考虑了来自原生应用和网页的用户界面约定,我们还仔细思考了可以移除哪些内容。我们有一个活跃的私人 Beta 测试组,他们在过去几个月里给了我们关键的反馈。

我们发现专辑封面和照片对人们来说非常重要。许多播放器只是文件列表。拥有实体专辑的一件很酷的事情是专辑封面,我们想在 Voltra 桌面应用中强调这一点。

voltra-albumview

我们还确保不干涉用户的文件。我们使用文件监视,所以你可以将文件放在任何地方,我们不会为你重命名或移动它们。我们有一个嵌入式数据库来跟踪监视目录的状态,这样即使程序没有运行,我们也能跟踪新文件。

在构建 Voltra 时遇到过哪些挑战?

我们花费大量时间专注于性能。我们最初使用框架,但后来转向了原生 JavaScript。根据我们的经验,框架提供的通用抽象所带来的性能损失和繁琐操作大于其价值。

目前我们能够很好地处理非常大的收藏。大的收藏可能意味着数万张图片!从渲染进程直接访问 Node.js 的文件系统模块使得基于 DOM 事件非常快速地延迟加载和卸载大量图片变得非常容易。

总的来说,setImmediaterequestIdleCallback 是在执行大量处理的同时保持 UI 响应的关键工具。更具体地说,将 CPU 密集型任务分配到单独的进程中,对于保持用户界面响应非常有效。例如,我们将实际的音频上下文移到了一个单独的进程中,通过 IPC 与其通信,以避免忙碌的 UI 带来的潜在中断。

为什么选择基于 Electron 构建 Voltra?

浏览器的沙盒对我们的应用来说限制太多了。但我们也在开发一个网页播放器。因此,我们几乎可以共享两个实现之间 100% 的代码,这是一个巨大的优势。

我们实际上是从使用 Swift 构建原生应用开始的。我们发现的主要问题是我们重复发明了很多东西。网页拥有世界上最大的开源生态系统。所以我们很快就转向了 Electron。

另外,最重要的是,使用 Electron 你只需要开发一次,它应该能在所有主要平台上™正常工作。虽然不能保证,但为每个平台编写原生代码的成本肯定超过了 Electron 带来的任何其他成本。

您最喜欢 Electron 的哪些地方?

GTD!: 将 Node.js 的网络堆栈和 Chromium 的渲染层打包在一起,是提高效率的关键。

能力: 它只是 Web 技术栈,所以我们整个团队都可以参与实际的产品构建。

社区: 有一个高度组织化的社区,非常懂得如何交流!有这样的支持,我们感到非常棒。

Electron 在哪些方面可以改进?

我们希望 Electron 能推荐一个统一的打包工具。打包工具对于 Electron 来说,就像包管理器对于 Node 一样重要。目前用户领域有多个打包工具,每个都有有趣的特性,但也都存在 bug。社区达成共识将有助于引导贡献者的精力。

接下来有什么计划?

我们目前正在开发移动应用,并与艺术家和厂牌合作将他们的音乐添加到 Voltra 商店。嘿!如果你是艺术家或厂牌,现在就注册吧!我们计划在达到 1000 万首歌曲目标时开放商店。