2013-06-01 129 views
0
import java.awt.*; 
import javax.swing.*; 

public class TestFrame1 { 
    public static void main(String[] args) { 

     JFrame frame = new JFrame("Test Frame 1"); 
     frame.setSize(200, 100); 
     frame.setVisible(true); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    } 
} 

我需要一些幫助將音樂添加到jframe。我一直在尋找一個很好的教程,並沒有一個似乎工作。如何將音樂添加到JFrame?

即時通訊使用netbeans。這是我目前的代碼。現在我只想添加音樂到幀沒有停止按鈕。謝謝。

+0

只要你知道,很高興通過點擊旁邊的檢查來檢查誰回答你的問題。這可能不一定是我,但如果有人給出了你使用的答案,這是很好的事情。 –

+0

@ hek2mgl大聲笑沒關係,兩年前的老兄,我完成了XD,如果你需要我使用的代碼,我可以在我的舊文檔中找到它:P – zepperoni

回答

2

看一看Accessing Audio System Resources。下面是可用類

Class    Format 
--------------------------------------------- 
AudioSystem  WAV 
Manager*   MP3  
MidiSystem   Midi 

javax.media.Manager需要Java Media Framework

最簡單的選項是AudioSystemMidiSystem一個他們不需要額外的JAR文件。下面是從標籤link

public class LoopSound { 

    public static void main(String[] args) throws Exception { 
     URL url = new URL(
          "http://pscode.org/media/leftright.wav"); 
     Clip clip = AudioSystem.getClip(); 
     // getAudioInputStream() also accepts a File or InputStream 
     AudioInputStream ais = AudioSystem.getAudioInputStream(url); 
     clip.open(ais); 
     clip.loop(Clip.LOOP_CONTINUOUSLY); 
     SwingUtilities.invokeLater(new Runnable() { 
      public void run() { 
       // A GUI element to prevent the Clip's daemon Thread 
       // from terminating at the end of the main() 
       JOptionPane.showMessageDialog(null, "Close to exit!"); 
      } 
     }); 
    } 
} 

爲了整合與JFrame中的音頻爲例,只需將應用程序啓動時調用Clip#loop

2

嘗試:

public static void playSong(URL media) { 
    Player mediaPlayer = Manager.createRealizedPlayer(media); 
    mediaPlayer.start() 
} 

所以,你就應該能夠調用該方法,並在URL傳遞給媒體,然後它應該扮演(注:我沒有測試此代碼)。

您所需要的進口:

import javax.media.Player; 
import java.net.URL; 

我只記得,你需要將JMF的.jar添加到您的項目。 JMF(Java媒體框架)具有播放音樂和(我認爲)視頻等工具。

下面是IBM一個相當廣泛的教程:http://www.ibm.com/developerworks/java/tutorials/j-jmf/

朝下方,它上安裝JMF的說明,然後在下一個頁面上展示瞭如何進行基本的音頻。

一些更多的建議:

1)您需要添加MP3插上從JMF播放MP3。添加在.jar文件的插件到您的項目後,這是你的代碼柄增加(我從內存中這樣做,所以它可能是錯的):

Format input1 = new AudioFormat(AudioFormat.MPEGLAYER3); 
    Format input2 = new AudioFormat(AudioFormat.MPEG); 
    Format output = new AudioFormat(AudioFormat.LINEAR); 
    PlugInManager.addPlugIn(
     "com.sun.media.codec.audio.mp3.JavaDecoder", 
     new Format[]{input1, input2}, 
     new Format[]{output}, 
     PlugInManager.CODEC 
    ); 

2)上次使用的時間它,JMF的下載鏈接在oracle網站上被打破了(它鏈接到了錯誤的頁面),所以你可能需要搜索谷歌上的鏈接。