跳至主要內容

本週專案:Voltra

·6 分鐘閱讀

本週我們與 Aprile ElcichPaolo Fragomeni 會面,討論了 Voltra,一款以 Electron 驅動的音樂播放器。


什麼是 Voltra?

Voltra 是一款為想要擁有自己音樂的人設計的音樂播放器。它也是一個商店,您可以在這裡根據您已擁有的音樂來發現和購買新音樂。它是無廣告的,可在桌面和行動裝置上跨平台使用。它也不會監視您。

voltra-artistview

Voltra 適合哪些人?

任何聽音樂的人。

是什麼動機讓您們創建 Voltra?

電台一直以來都有很大的聽眾群。它正從無線電波轉移到網際網路。現在您可以隨選租借音樂 — 這是電台的復興!由於這一點,出現了很多新產品和服務,但串流電台仍然讓其他人控制您的音樂以及您的體驗方式。

我們想要一款完全專注於您所擁有音樂的產品。一種可以輕鬆直接從藝術家或唱片公司發現和購買新音樂的產品。

是否有免費版本?

桌面播放器是完全免費的。 銷售您的音樂也是免費的! 我們不支援廣告。

由於該應用程式是免費的,我們可能會在稍後開源它。目前我們沒有頻寬來管理它。我們對功能和我們想要採取的方向也有非常具體的想法。我們有一個活躍的 Beta 社群,我們非常重視回饋。

您們如何賺錢?

我們有高級功能!

我們的 Voltra Audio Archive 是一個專為音樂設計的雲端備份服務。我們不會壓縮或分享資料區塊。您的音樂收藏會為您進行實體備份。

對於藝術家和唱片公司,我們的 Pro 會員資格 提供工具來幫助他們接觸更多相關受眾,例如分析和專業藝術家網頁。

是什麼讓 Voltra 與眾不同?

設計和可用性對我們來說非常重要。我們想給聽眾一個不受干擾的聆聽體驗!市面上有一些有趣的音樂播放器和商店。但是其中許多都比其創作者意識到的更先進且更難以使用。我們希望讓盡可能多的人都可以使用 Voltra。

我們也不會從藝術家或唱片公司那裡抽取利潤。這是我們的一個關鍵區別。這非常重要,因為它可以降低藝術家將其音樂推向市場的門檻。

您們做出了一些什麼設計和技術決策?

在設計 Voltra 時,我們考慮了原生應用程式和網路的 UI 慣例,我們也仔細考慮了可以刪除哪些內容。我們有一個活躍的私人 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 一樣重要。使用者層有多個封裝工具,每個都有有趣的功能,但也都有各自的錯誤。社群的共識將有助於引導貢獻者投入的精力。

接下來有什麼?

我們目前正在開發行動應用程式,並與藝術家和唱片公司合作,將他們的音樂添加到 Voltra 商店。嘿!如果你是藝術家或唱片公司,請立即註冊!當我們達到 1000 萬首曲目的目標時,我們計劃開放商店。