2012-07-29 99 views
0

我想開始一個關注於以某種方式顯示文件夾中的音頻文件的愛好項目,並且能夠播放這樣的音頻文件並顯示播放的基本控制選項。不過,我正在努力爲此找到合適的編程語言。編程語言的音頻支持

顯示部分不應該太難,而且大概可以在大多數編程語言中完成。 音頻部分是我最關心的問題,因爲它不是該項目的主要焦點,應該只做有限的事情(所以它不應該太難),我不知道任何關於編程語言的聲音支持目前知道。 (Java,C和C++)

具體來說,我想能夠做這些事情:

  1. 播放聲音文件
  2. 停止/暫停正在播放的歌曲
  3. 調整volume
  4. 顯示一條顯示當前位置的歌曲

大多數文件將是.mp3文件,但能夠處理其他格式肯定是一個加號。由於這只是一個小項目,它可以運行在Windows上。可伸縮性會很好,但不是必需的。

對於能夠以非常複雜的方式完成這些簡單事情的編程語言的音頻支持/音頻庫(我總是喜歡新的東西)以及個人體驗。

以這種方式,我希望能夠更好地理解哪種編程語言最適合我的項目。 (我非常喜歡沒有改變語言中途項目)

-

編輯: 這僅僅是因爲如果第一部分是全成該項目的後期階段:我將要更改顯示的音頻文件的文件名稱。 (使它們遵循特定的格式)

+1

如何在瀏覽器中運行的Web應用程序?你可以學習HTML5 + JavaScript中,它們總是很好的技能有時下..存在着可以用JavaScript來實現控制的

+0

實際上聽起來不錯,但從性能POV我不知道它是可行的。我想要顯示的音頻文件夾的大小(以及經常同步!)是100Gb,典型的「歌曲」大約爲100-200Mb。我忘了提及的是,在稍後階段,我想對歌曲的文件名進行實際處理(使文件名遵循統一格式),我認爲這是不可能的。我會編輯:) – Aerus 2012-07-29 10:44:55

+0

100-200Mb,那是什麼樣的'歌'? +我不明白爲什麼你以後不能重命名你的文件,它們會被放置在你的服務器上,你可以隨心所欲,人們總是重命名網頁文件!只要你相應地更新你的HTML頁面就沒有問題。 – darma 2012-07-29 11:06:56

回答

2

我沒有寫很多音頻處理程序,但我知道它們中有很多C和C++存在。對於Java也許,但我不知道Java。我曾在遊戲中使用過SDL的音頻,但那並沒有那麼多功能,我不推薦它。

this question要求在C的圖書館,並有一些類似的問題,所以帶來了一邊。你可能想看看那些。

您還需要查找加載不同文件類型的庫。 SDL至少只能打開.wav文件,我相信大部分播放庫都會支持這些文件。對於MP3,你很可能需要一個額外的庫。我知道Audacity使用LAME Mp3所以我猜這應該是好的。

一些你想要的功能也是自己​​可行的。例如,知道音樂的長度和你已經閱讀的數量,你就會知道你的音頻有多遠。調整音量也是一種乘法(在最簡單的情況下),如果音樂庫不提供音量數據,您可以對其進行處理。

一個非常好的選擇似乎是PortAudio這是used by Audacity,也是我在上面提到的問題的接受答案中推薦的。

+0

非常感謝。看起來我會去C++並開始查找你提到的庫。 – Aerus 2012-07-29 15:53:57

+0

@aerus,祝你好運:) – Shahbaz 2012-07-29 15:54:34

+0

更新:wwise現在很有名! – Shahbaz 2018-02-14 18:23:13

0

我在Java和C++實現的音頻應用。 Java開發的速度更快,因爲它是一種功能更強大的語言,並且具有垃圾收集功能,但JavaSound是一個非常糟糕的音頻解決方案。當然,還有FFMPEG和其他東西的包裝,所以你可以得到很多東西的工作。下面是一個Java應用程序的音頻的例子:http://www.indabamusic.com/help/mantis

OTOH,C++給你很多控制,低延遲和財富庫的。 (另一個答案提到Portaudio,確實很棒。)但是你一定會發現它的開發週期也更長。

你當然可以做你想要用兩種語言做的一切。