如何向我的 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 添加一些声音? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章