gpt4 book ai didi

java - 正在运行的.wav音频中显示运行时错误

转载 作者:行者123 更新时间:2023-12-03 00:11:52 25 4
gpt4 key购买 nike

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:C:/Users/a/Documents/My/baby.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:
could not get audio input stream from input URL (in javax.sound.sampled.AudioSystem)
请任何人解决我的问题

最佳答案

似乎很可能发生两件事之一(或两者都有!)。一种是文件的寻址不起作用。另一个是该文件是Java不支持的格式。
我在评论中提出了信息请求,但是那里的事情变得很混乱!
您能告诉我们wav文件的格式吗?尝试检查其属性。当然,Java将支持16位,44100 fps,单声道或立体声,小端格式,这是最常见的格式。如果操作系统中的属性不完整,则可以使用Audacity检查属性。如今,有更多的文件是24位或32位,48000fps甚至92000fps,而Java还不支持它们,afaik。
Freesound.org上的“安全”测试声音为this thunder clap。您可以在页面右侧的规格中看到它是16位,44100 fps立体声。我会下载它并将其添加到您的程序中,而不是尝试从其网站上播放它。
为了帮助测试寻址是否存在问题,我将声音放在与SoundTest.java文件相同的文件夹中。然后,使用以下行获取文件的URL。

URL url = this.getClass().getResource("soundfilename.wav");
这将在项目文件夹中搜索资源。还有其他用于不同目的的寻址模式,但这应有助于使基本代码正常工作。如果确实需要,可以直接从光盘位置读取程序,方法是在确认您具有正常的声音文件后才能解决。

关于java - 正在运行的.wav音频中显示运行时错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64536221/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com