Java 如何更改以前播放的音频文件的名称?

Java 如何更改以前播放的音频文件的名称?,java,exception,audio,javasound,Java,Exception,Audio,Javasound,我想创建程序,创建目录中的文件列表。当您单击一次名称时,它应该播放文件,当出现两次对话框时,它会要求您更改示例的名称。问题是,当我试图更改文件名,并且声音正在播放时,我遇到了一个异常,该文件无法更改,因为它被另一个进程使用。我试图用close方法(ais.close())关闭流,但没有帮助。 您能告诉我如何从进程中分离文件吗? 以下是我的玩法: File sample = fileList.get(index); try { Clip clip = AudioSystem

我想创建程序,创建目录中的文件列表。当您单击一次名称时,它应该播放文件,当出现两次对话框时,它会要求您更改示例的名称。问题是,当我试图更改文件名,并且声音正在播放时,我遇到了一个异常,该文件无法更改,因为它被另一个进程使用。我试图用close方法(ais.close())关闭流,但没有帮助。 您能告诉我如何从进程中分离文件吗? 以下是我的玩法:

File sample = fileList.get(index);
    try {
        Clip clip = AudioSystem.getClip();
        AudioInputStream ais = AudioSystem.getAudioInputStream(sample);
        clip.open(ais);
        clip.loop(0);
    } catch (LineUnavailableException ex) {
        Logger.getLogger(MainList.class.getName()).log(Level.SEVERE, null, ex);
    }
播放wav文件的方式取自以下文章:

确保也关闭()剪辑。

clip clip=AudioSystem.getClip()声明
Clip Clip=null
作为类属性,然后
clip=AudioSystem.getClip()以确保仅存在一个剪辑。一般提示:1)为了更快地获得更好的帮助,可以发布一个(最简单、完整、可验证的示例)或(简短、独立、正确的示例)。2) 始终复制/粘贴错误和异常输出!我设法用另一种方法解决了这个问题。我使用了内部API属性,所以我不想发布我的解决方案(我认为你不应该这样做)。但我会检查安德鲁的建议,如果可行,我会发布解决方案。