1
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 添加音乐。我一直在寻找一个好的教程,但它们似乎都不起作用。

我正在使用 netbeans。这是我当前的代码。我现在只想将音乐添加到框架中,没有停止按钮。谢谢你。

4

2 回答 2

3

查看访问音频系统资源。这是可用的课程

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

javax.media.Manager 需要Java 媒体框架

最简单的选项是AudioSystemMidiSystem它们不需要额外的 JAR 文件。这是来自标记链接的示例

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在应用程序启动时调用。

于 2013-06-01T01:03:51.583 回答
3

尝试:

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)我上次使用它时,oracle网站上的JMF下载链接坏了(它链接到错误的页面),所以你可能不得不在google上搜索链接。

于 2013-06-01T01:17:59.370 回答