java - getAudioInputStream 导致异常
问题描述
我正在尝试制作一个非常简单的程序来播放声音文件。
到目前为止,我所拥有的是:
import java.io.File;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
public class SoundTest {
public static void main(String[] args) {
File sound = new File("/home/pierce/Downloads/clapping.wav");
playSound(sound);
}
static void playSound(File sound) {
try {
Clip clip = AudioSystem.getClip();
clip.open(AudioSystem.getAudioInputStream(sound));
} catch(Exception e) {
System.out.println("Something failed");
}
}
}
添加“clip.open(AudioSystem.getAudioInputStream(sound));”行后,我开始在异常中收到消息。基本上我不知道为什么。任何帮助,将不胜感激。
如果有助于了解我的目标,我正在尝试遵循本教程。
谢谢
编辑:堆栈跟踪,根据要求:
java.lang.IllegalArgumentException: Invalid format
at org.classpath.icedtea.pulseaudio.PulseAudioDataLine.createStream(PulseAudioDataLine.java:142)
at org.classpath.icedtea.pulseaudio.PulseAudioDataLine.open(PulseAudioDataLine.java:99)
at org.classpath.icedtea.pulseaudio.PulseAudioDataLine.open(PulseAudioDataLine.java:283)
at org.classpath.icedtea.pulseaudio.PulseAudioClip.open(PulseAudioClip.java:402)
at org.classpath.icedtea.pulseaudio.PulseAudioClip.open(PulseAudioClip.java:453)
at SoundTest.playSound(SoundTest.java:17)
at SoundTest.main(SoundTest.java:10)
解决方案
推荐阅读
- sql - 维度表上的 EndDate - 我们应该使用 NULL 还是 99991231 日期值
- google-cloud-platform - CloudSQL 警告:需要您采取行动来更新您的功能:超出上下文期限
- blazor - 如何在 blazor 中显示对象
- javascript - 如何从 eventListener 更新状态
- javascript - jQuery 中的警报消息导致 jQuery 代码一次又一次地运行
- azure-devops-migration-tools - 在迁移提交链接是“固定”,“删除”但不是“添加”
- javascript - 单击后使用文本区域打开对话框
- c# - Web API 项目中 CreateHostBuilder 中的 Lambda 表达式
- django - 来自 django 模型表单的数据未保存到数据库
- http - “处理程序因错误运行时错误而崩溃:无效的内存地址或 nil 指针取消引用”,但 POSTMAN 没问题!为什么会发生这种情况?