如何向我的 Java JFrame 添加一些声音? [关闭]

Posted

技术标签:

【中文标题】如何向我的 Java JFrame 添加一些声音? [关闭]【英文标题】:How can I add some sound to my Java JFrame? [closed] 【发布时间】:2020-10-24 03:31:28 【问题描述】:

我正在用 JFrame 制作 Java 游戏。游戏快完成了,但我想给它添加一些声音。就像游戏开始时一样,声音也应该开始。我检查了互联网,但代码要么不起作用,要么很长。谁能帮我提供一些适用于 JFrame 的简单代码?

【问题讨论】:

我已经检查了互联网,但代码要么不起作用,要么很长。 - 发布您测试过的代码,这样我们就不会花时间提出相同的建议. 【参考方案1】:

播放 .wav 文件的基本示例:

import java.awt.event.*;
import javax.swing.*;
import javax.sound.sampled.*;
import java.net.URL;
import java.io.*;

class SoundTest

    public static void main(String[] args) throws Exception
    
        //URL file = new URL("file:./flyby1.wav");
        //URL file = new URL("file:c:/users/netro/java/flyby1.wav");
        URL file = new URL("https://www.wavsource.com/snds_2020-10-01_3728627494378403/sfx/air_raid.wav");

        AudioInputStream ais = Audiosystem.getAudioInputStream(file);
        Clip clip = AudioSystem.getClip();
        clip.open(ais);

        JButton button = new JButton("Play Clip");
        button.addActionListener( new ActionListener()
        
            @Override
            public void actionPerformed(ActionEvent ae)
            
                clip.setFramePosition(0);
                clip.start();
            
        );

        JOptionPane.showMessageDialog(null, button);
    

【讨论】:

我尝试了您的代码,但是当我尝试运行程序时,它显示此消息 - javax.sound.sampled.UnsupportedAudioFileException 无法从输入 URL 获取音频输入流(在 javax.sound. sampled.AudioSystem.(我使用的是 .wav 文件) 我完全按照与类文件位于同一目录中的 .wav 文件测试代码。无论我指定绝对路径还是相对路径,它都有效。我不知道如何使代码更简单。确保您的 .wav 文件可以在您计算机上的音乐播放器中播放。 或许可以探索一下是否支持wav的格式。一些较新的格式(24 位或 32 位编码而不是 16 位、48000 或 96000 fps 而不是 44100 fps)可能会引发此异常。

以上是关于如何向我的 Java JFrame 添加一些声音? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何将 JPanel 添加到 JFrame 十次 [重复]

如何在 Noty 通知中添加声音

如何在 Java 中将多个可拖动图像添加到 JFrame?

Java JFrame - 添加标签图像

如何向我的 Java Servlet 的现有 HttpServletRequest 添加参数?

如何向我的项目添加(导入)java websocket 库?