2011-01-23 86 views
0

好的,我需要的是一個命令行應用程序,它允許您截取文件的音頻流。截取音頻流

例如,它應該像這樣運行:

APP.EXE 「C:/artist-title.mp3」 「C:/mp3Stream.jpg」
APP.EXE「C:/藝術家稱號.wav「」C:/wavStream.jpg「

它只需要能夠捕獲mp3流,其他流是獎金。

最好所有的音頻通道都列在圖像中,但是如果所有的通道都組合成一個單聲道的流,那麼它對我來說同樣適用。

那麼,那裏有這樣的應用程序嗎?所以我不重新發明輪子。

如果沒有人有提示,我應該如何去編寫這樣的應用程序我自己?最好用Java。我可以很好地處理編程,但我不完全是MP3/WAV格式的專家。

爲什麼我需要它...?那麼,除了鏈接之外,通過某種預覽圖像鏈接到一個在線文件會更有趣。它在聽到它之前給你一個音頻角色的提示(是否大聲?它看起來像是「比特音樂」嗎?它有任何比其他部分更安靜的部分?)等等。

+0

爲什麼-1?這是一個完全有效的問題。正如我所說,如果你不知道我想要什麼樣的應用程序,可以隨意給我提示如何讀取MP3文件以及如何將流顯示爲「wave」或任何適當的詞。我是這個領域的新人。 – Johannes 2011-01-23 21:41:51

回答

0

沒關係,我用Java編寫了自己的小應用程序。

這是小菜一碟,一旦我發現這個優秀導遊:
http://codeidol.com/java/swing/Audio/Build-an-Audio-Waveform-Display/

雖然無法下載該網頁上源(據我所知,但他就是告訴你應該能夠)他確實提供了一些非常有用的重要代碼行,這使得將應用程序拼湊在一起變得很容易。

添加一點幫助(簡單的東西)。你可以這樣做得到一個圖形對象:

BufferedImage img = new BufferedImage(500,100,BufferedImage.TYPE_INT_RGB);
Graphics2D gfx =(Graphics2D)img.getGraphics();

一旦你畫你需要的GFX你可以通過一條線把它保存到磁盤一切:

ImageIO.write(IMG,「JPG」,新的文件(「waveform.png」)) ;

雖然很難讓它看起來很好。看起來不像Audacity那麼好。猜猜他們花了更多的時間在上面,而不是幾個小時。

但是,最大的麻煩是Java不支持MP3導入。他們真的應該解決這個問題。

因此,要獲得MP3的波形,我首先使用「javazoom.jl.decoder.Decoder.java」將它們轉換爲WAV,它位於其網站上。使用起來非常簡單,只需輸入路徑和輸出路徑即可完成。

javazoom點網(無法發佈本網站上有多個「超鏈接」)

的這個大缺點當然是一個huuge WAV文件必須創建的,榮辱與共是thee,如果MP3恰好是15分鐘左右... WAV將超過100 MiB(甚至可能200 MiB,自從我出現Java內存不足錯誤以來還沒有發現,儘管我給了VM 512MB)。

請今天在Java支持Java。猜猜他們沒有的原因是因爲版權問題。版權真的是放慢了人的速度。

0

也看看http://www.jsresources.org/ 它提供了一個很好的常見問題部分關於Java中的所有音頻和一些示例應用程序。