java - 如何向我的 Java JFrame 添加一些声音?
问题描述
我正在 JFrame 中制作 Java 游戏。游戏快完成了,但我想给它添加一些声音。就像游戏开始时一样,声音也应该开始。我检查了互联网,但代码要么不起作用,要么很长。谁能帮我提供一些适用于 JFrame 的简单代码?
解决方案
播放 .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);
}
}
推荐阅读
- docker - 我可以查询远程 docker 注册表以获取图像信息(例如操作系统)吗?
- java - Kafka - 如何在偏移量中跳过错误消息并使用其余消息
- java - 在构造函数中自分配对象其子对象
- python - 在 re.sub() 中拆分捕获的组结果
- angular - 使用 angular-cdk 创建叠加层中的垂直滚动
- node.js - Express app mongoDB,什么是昂贵的操作?
- iot - Contiki OS:设置混杂模式并接收所有 UDP 数据包
- git - gitlab 备份是否包含存储库中的实际文件?
- kendo-ui - 在 C# 中验证 kendoUI DataSourceRequest 对象
- javascript - 调整浏览器窗口大小时如何获取 HTML 元素的位置?