文件扩展名 - 用于文件。 (.Mp3 和.Wav)

File Extension - Use it for files. (.Mp3 and .Wav)

我设法制作了一个可以理解 Java 中的 mp3 的程序(通过 jaco.mp3 jar)并且它可以工作。然而,这意味着 .Wav 文件当然不起作用。所以我修好了,这样我就可以使用 Wav,但问题是我不能使用 mp3。所以我发现我可以使用文件扩展名,我的想法是这样:

如果最后3或4个字母以.mp3结尾,则执行mp3方法,如果是.Wav,则执行Wave方法。但我真的不知道如何一起管理它,我更像是一个 Switch 语句。但我之前真的从未使用过文件扩展名,可能需要一些帮助!

然而,这是我现在的 mp3 方法:

public void Choose() {
        String userDir = System.getProperty("user.home");
        JFileChooser fileChooser = new JFileChooser(userDir +"/Desktop");

        int returnValue = fileChooser.showOpenDialog(null);
        if (returnValue == JFileChooser.APPROVE_OPTION) {
            File selectedFile = fileChooser.getSelectedFile();
            System.out.println(selectedFile.getName());

            mp3_player =  new MP3Player(selectedFile);
            lblPlayURL.setText(selectedFile.getName());
        }
    }
}

如您所见,我有一个 JFileChooser,我当然可以在其中选择我想要的歌曲,而且我仍然想这样做,唯一不同的是现在它应该可以同时作为 .Wav 和 .mp3 工作。但我真的不知道如何进一步处理它。所以需要你们的帮助! :)

在人们试图从一个显示 Playing .Wav and .Mp3 的线程中给出任何建议之前。我首先要说的是,我已经阅读了它,并且只有关于它们每个的答案,只有 mp3 或 .Wav。不是都。所以这就是我创建此线程的原因,因为我需要帮助!

您也许可以检查文件路径是否以 MP3 或 WAV 结尾,并根据条件对 运行 不同程序进行 if 语句。

可以这样做:

String ext = selectedFile.getPath();

if(ext.endsWith(".wav"))
{
    // A WAV file was chosen
}
else if(ext.endsWith(".mp3"))
{
    // An MP3 file was chosen
}
else
{
    // Something else was chosen
}

编辑:这种方法加上 Bogdan 的回答可能是您最好的选择。

FileFilter 规则添加到您的 JFileChooser 以匹配 .mp3.wav 文件:

fileChooser.addChoosableFileFilter(new FileTypeFilter(".mp3", "MP3 Files"));
fileChooser.addChoosableFileFilter(new FileTypeFilter(".wav", "WAV files"));

How to add file filter for JFileChooser dialog.