当前位置: 首页 > 知识库问答 >
问题:

Java按钮没有声音

司空繁
2023-03-14

我创建了一个< code >类来在我点击按钮时播放声音。

这是代码:

public void playSound()
    {
        try 
        {
            AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(new File("beep-1.wav"));
            Clip clip = AudioSystem.getClip( );
            clip.open(audioInputStream);
            clip.start( );
        }
        catch(Exception e)
        {
            System.out.println("Error with playing sound.");
        }
    }

当我想将其实现到 ButtonListener 方法中时,似乎没有播放任何声音。

下面是< code>ButtonListener代码:

private class ButtonListener implements ActionListener
    {
        public void actionPerformed(ActionEvent e) 
        {
            if (replayButton == e.getSource()) 
            {
                playSound();
            }
        }
    }

代码有什么问题?

编辑:

基本上我正在尝试创建一个简单的记忆游戏,我想在点击按钮时添加声音。

解决了的:

我从Soundjay下载的音频文件似乎出现了问题,因此无法播放该音频文件@_@

共有3个答案

白翰海
2023-03-14

请问有堆栈跟踪吗???你给按钮添加监听器了吗???

无论如何,标准方法在跨平台定位时有一些错误。在http://www.oracle.com/technetwork/java/javase/tech/index-jsp-140239.html.使用Java媒体框架

太叔烨霖
2023-03-14

这应该可行:

public class Test extends JFrame {

    public static void main(String[] args) {
        new Test();
    }

    public Test() {
        JButton button = new JButton("play");
        button.addActionListener(new  ActionListener() {
        public void actionPerformed(ActionEvent e) {
                playSound();
        }});
        this.getContentPane().add(button);
        this.setVisible(true);
    }

    public void playSound() {
        try {
            AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(new File("beep.wav"));
            Clip clip = AudioSystem.getClip( );
            clip.open(audioInputStream);
            clip.start( );
        }
        catch(Exception e)  {
            e.printStackTrace( );
        }
    }
}

请注意,在播放文件的过程中,GUI将不可响应。在你的听众中使用Joop埃根的方法来纠正这一点。它将异步播放文件。

SwingUtilities.invokeLater(new Runnable() {
    public void run() {
        playSound();
    }
});
甄坚白
2023-03-14

使用

SwingUtilities.invokeLater(new Runnable() {
    @Override
    public void run() {
        playSound();
    }
});
 类似资料:
  • 问题内容: 我已经看到,在其他类型的对话框窗口(例如“ showConfirmDialog”)中也可以做到这一点,在其中可以指定按钮的数量及其名称。但是使用“ showInputDialog”时是否可以实现相同的功能?我似乎在API中找不到这种类型的东西。也许我只是想念它,但是任何帮助都值得赞赏。 问题答案: 只需将自定义JPanel添加为消息即可:

  • 我已经看到,这在其他类型的对话框窗口中是可能的,如“ShowConfirmDialog”,其中可以指定按钮的数量和它们的名称;但是在使用“ShowInputDialog”时是否可以实现相同的功能?我似乎在API中找不到这种类型的东西。也许我只是错过了,但任何帮助都很感激。

  • 问题内容: 我有这个代码 它的工作原理,但不是我所期望的。声音会播放,但仅在我每次按下按钮时播放。我的主意是 当我按下按钮时,声音会播放,当我停止动作(手指在按钮之外)时,音乐会暂停。 有什么想法吗? 谢谢 问题答案: 这应该可以工作(我认为您的开关柜出了点问题):

  • 在我的帐户页面/视图订阅中,在操作段落中,我有一个取消按钮,但没有挂起按钮。你知道这是否正常吗? 我跟踪了这个函数,它只返回取消数据:wcs_get_all_user_actions_for_subscription 谢谢你的帮助

  • 我可以创建一个没有消极或积极按钮的对话框。这在特定行动后会摧毁它自己吗?

  • 我正在使用C#和Selenium Web驱动程序。问题是我找不到一个没有ID值的开始按钮。 我为该对象找到的唯一标识符是'value=“74”‘文本。 按钮的HTML如下所示: driver.findElement(by.xpath(“(//input[@name='PRODUCT_ID'][@value='74'])”)).click(); 提前致谢