2012-09-03 133 views
1

我們試圖使用各種放大器顯示已錄製的電吉他輸入音頻信號。我們正在尋找一種用Java顯示的算法。顯示音頻信號

我們正在查看AWT和Swing庫,並且想知道:哪種更適合圖形或視覺顯示?

回答

2

對此使用Swing而不是AWT。要麼能夠做到這一點,但Swing更加現代化,並且支持AWT API中缺少的組件(JTreeJTable ..)和功能(內置雙緩衝,鍵綁定,PLAF,支持富文本)。

使用Swing的另一個優點是,看起來您正處於需要提出更多問題的階段。大多數使用Java SE編程圖形用戶界面的人從未使用過AWT組件,而我們其他人幾乎已經忘記了如何! (也有更多的人誰可以與Swing不是JavaFX的幫助,在這一點上。)

在AWT你可以使用一個Canvas繪製的波形,但在搖擺,你會用下列之一:

  • JPanel(或有時JComponent)其中油漆我們覆蓋paintComponent(Graphics)
  • JLabelBufferedImage顯示。

您可以在DrewTubeish看到第一種技術的示例 - 這裏是Leftover Wine

2

您會被允許使用JavaFx嗎?我要問的原因是JavaFx 2.0有一些專門爲這類多媒體任務設計的優秀api。當然可以用swing或awt來實現,但爲什麼不對自己好一點?我沒有時間或空間深入其中,但我建議由Apress推出'Example by JavaFx 2.0'或'Pro JavaFx 2.0'。我會說第二個更好,更全面。我相信兩者都有示例代碼,可以完成您剛纔描述的內容。

祝你好運!

+0

是的,看看MediaPlayer類,特別是它創建的AudioEqualizer實例。您可以使用它們查看播放音頻時的實況頻譜。 Actionscript 3內置了一些相似的功能,我已經看到了它在該語言中的一些非常酷的應用程序(as3)。 –

1

我用AWT,Swing和JavaFX來處理音頻中的主要項目,包括波形繪製和編輯。這是我的想法:

  • AWT沒有被開發或教授。我不知道任何仍然使用它的開發人員。我不會使用它。
  • JavaFX是一場災難。早在2010年,我就在研究最大的JavaFX代碼庫,並且我們放棄了它。我確信它變得更好了,但我還沒有聽到有人說它可以處理重大項目。如果你的項目很小,JavaFX可能是一個不錯的選擇,或者如果你感覺強烈,你可能需要做進一步的研究。你可以在這裏閱讀更多關於我的經驗:http://blog.bjornroche.com/2010/03/java-nofx-why-one-project-dropped.html
  • Swing有問題,應該受到很多批評,但如果你知道你在做什麼,它可以是真棒。我已經開發了一些踢屁股用戶界面(他們看起來很像設計)。 Swing寫在AWT的頂端,你會認爲它會讓它變慢,但是有很多優化讓它在大多數平臺上變得非常快。如果我理解正確,CodenameOne使用類似揮杆的界面,所以在我的書中,這是另一種揮杆投票:http://www.codenameone.com/
  • SWT是另一種選擇。 http://www.eclipse.org/swt/我從來沒有使用它,但我知道你必須做自己的內存管理,這,國際海事組織,帶走了很多使用Java的優勢。就像我說的,但是,我從來沒有用過它,所以我可能是錯的。它是Eclipse的本地工具包。