一個在線音樂軟件的故事(二、其實故事從這裏纔開始)

其實故事從這裏纔開始

如果你看到了這裏,那你應該看出來,我是在講軟件開發的故事,如果你和我一樣喜歡Linux,喜歡用Python那我希望你也喜歡這個故事。這個故事並不是講如何使用Python的,所以關於如何使用Python推薦你看《Python cookbook 第三版》

在故事的由來中已經提到,我是在Fedora上工作的,這個軟件首先必須能在Fedora上運行,其他的Linux發行版留到以後測試。在Fedora25上,系統默認安裝Python2.7,最新發布的Fedora26默認安裝Python3,因此優先考慮使用Python作爲開發語言。因爲現在我使用的還是Fedora25,所以Python2.7成爲首選開發語言。

定好開發語言之後,就是選擇開發庫,這個軟件需要用到的組件庫主要包括:界面組件庫、音頻文件解析組件庫、音頻解碼播放組件庫等。

先來說說界面組件庫,PythonUI組件庫有很多種,比如:TkinterwxPythonPyQtPySidePyGtk等等。我選擇了比較熟悉的PySide,因爲他其實就是PyQt的免費授權版,他的開發庫APIPyQt幾乎一樣,界面組件的樣式也幾乎是一樣的,雖然我不是做商業應用,但誰知道呢?還是免費開源的比較符合Linux 精神!其實最重要的原因還是我比較熟悉! PySide可以通過 dnf命令從軟件源安裝,而且官方提供很詳細的開發文檔,還有有不少範例可以參考。

音頻文件處理和播放這是有點難以選擇的,現在很多文章都推薦使用PyGame作爲音頻處理的組件庫,但其實PyGame這個組件庫最初不是用來做音頻處理的,從字面上就能看出這是一款遊戲組件庫,而且這個組件庫已經很久沒有更新,社區的熱度也不高,果斷放棄。中間還實驗了其他幾款音頻文件解析和播放組件庫,都逐一放棄。經過實驗比較,最終選擇了Pydub,這是由住在美國紐約的James Robert開發維護的一款簡單高效的多媒體音頻數據處理接口,遵循MIT許可協議。這套組件庫的社區比較活躍,討論的內容也很多,開發的複雜度就像作者說的簡單高效,最重要的是作者一直在維護這個組件庫!Pydub的安裝方式很多也很靈活,最簡單的方式莫過於從GitHub上直接下載一份源碼,把它解壓縮後拷貝到你的項目中。

在音頻播放方面,選擇的是PyAudioPyAudio是基於PortAudio的跨平臺音頻IO組件庫。這個組件庫可以通過 dnf 命令安裝,同時會安裝PortAudio這個依賴項。在官網上有一些範例和文檔,這個庫的API不多,使用很方便。

好了,到這裏基本確定了所有的開發庫接下來就是解決所有的技術問題。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章