Java getAudioInputStream正在尝试读取音频文件,获取javax.sound.sampled.UnsupportDaudioFileException,

Java getAudioInputStream正在尝试读取音频文件,获取javax.sound.sampled.UnsupportDaudioFileException,,java,audio,wav,sample,Java,Audio,Wav,Sample,我正在尝试使用我在这里找到的代码在java程序中加载wav文件: 但是,在第14行: AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(file); 我得到了错误 “未处理的异常:javax.sound.sampled.UnsupportedAudioFileException,java.io.IOException” 这是我的代码: import java.nio.file.FileSystems; im

我正在尝试使用我在这里找到的代码在java程序中加载wav文件:

但是,在第14行:

AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(file);
我得到了错误

“未处理的异常:javax.sound.sampled.UnsupportedAudioFileException,java.io.IOException”

这是我的代码:

import java.nio.file.FileSystems;
import java.io.File;
import java.nio.file.Path;
import javax.sound.sampled.*;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;

public class Main {

    public static void main(String[] args) {
        Path path = FileSystems.getDefault().getPath("").toAbsolutePath();
        File file = new File(path+"/sample/loop1.wav");
        AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(file);
        AudioFormat format = audioInputStream.getFormat();
        long audioFileLength = file.length();
        int frameSize = format.getFrameSize();
        float frameRate = format.getFrameRate();
        float durationInSeconds = (audioFileLength / (frameSize * frameRate));
    }

}
我想做一个方法来选择音频文件中的开始播放点(例如:在30秒开始播放文件)。这就是为什么我不想检索文件的持续时间

当我执行
System.out.println(文件)时它打印文件的正确路径。
然而,由于我收到一条错误消息,我显然没有做正确的事情

我已经试着在网上找到一个解决方案,但我什么也没找到,所以我把它贴在这里


感谢您的关注。

AudioSystem.getAudioInputStream
抛出这些异常

因此,您必须使用
尝试。。。catch
块捕获异常,或将
throws
子句添加到方法声明中

一个基本的
试试。。。捕获将是:

try
 {
   Path path = FileSystems.getDefault().getPath("").toAbsolutePath();
   File file = new File(path + "/sample/loop1.wav");

   AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(file);

   AudioFormat format = audioInputStream.getFormat();

   long audioFileLength = file.length();
   int frameSize = format.getFrameSize();
   float frameRate = format.getFrameRate();
   float durationInSeconds = (audioFileLength / (frameSize * frameRate));
 }
catch (UnsupportedAudioFileException | IOException ex)
 {
   ex.printStackTrace();
 }

AudioSystem.getAudioInputStream
抛出这些异常

因此,您必须使用
尝试。。。catch
块捕获异常,或将
throws
子句添加到方法声明中

一个基本的
试试。。。捕获将是:

try
 {
   Path path = FileSystems.getDefault().getPath("").toAbsolutePath();
   File file = new File(path + "/sample/loop1.wav");

   AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(file);

   AudioFormat format = audioInputStream.getFormat();

   long audioFileLength = file.length();
   int frameSize = format.getFrameSize();
   float frameRate = format.getFrameRate();
   float durationInSeconds = (audioFileLength / (frameSize * frameRate));
 }
catch (UnsupportedAudioFileException | IOException ex)
 {
   ex.printStackTrace();
 }