【问题标题】:How do you add music to a JFrame?如何将音乐添加到 JFrame?
【发布时间】:2016-09-02 01:21:21
【问题描述】:
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。这是我当前的代码。我现在只想将音乐添加到框架中,没有停止按钮。谢谢。

【问题讨论】:

  • 您知道,很高兴通过单击旁边的检查来检查回答您问题的人。那可能不一定是我,但如果有人给出了你使用的答案,那是一件好事。
  • @hek2mgl 哈哈,没关系,这姑娘是两年前的事了

标签: java audio jframe


【解决方案1】:

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

    【讨论】:

    • 这是一个更好的解决方案,因为调用一个类来实现主要功能很简单
    猜你喜欢
    • 2015-11-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-25
    • 1970-01-01
    • 1970-01-01
    • 2013-08-31
    • 1970-01-01
    相关资源
    最近更新 更多