Хорошо, это мой первый пост, извините, если я сделал что-то не так. (пожалуйста, дайте мне знать, если я так и сделал)
Итак, я пытался создать папку «data» с аудиофайлом (.wav) в нем, когда запускается исполняемый файл JAR, но по какой-то причине он не работает, я пытался получить это работал на прошлой неделе, но я наконец-то отказался от попыток заставить его работать без помощи (кроме поиска по Интернету) и поэтому спрашиваю здесь.
Итак, у меня есть этот код:
public static void loop(String path, int volume) {
try {
if (volume > 6) throw new IllegalArgumentException("Requested volume ("+volume+") is higher than allowed. (maximum 6)");
else if (volume < -80) throw new IllegalArgumentException("Requested volume ("+volume+") is lower than allowed. (minimum -80)");
else {
Clip clip = AudioSystem.getClip();
clip.open(AudioSystem.getAudioInputStream(new File(path)));
clip.loop(Clip.LOOP_CONTINUOUSLY);
FloatControl gain = (FloatControl) clip.getControl(FloatControl.Type.MASTER_GAIN);
gain.setValue(volume);
clip.start();
}
} catch (Exception e) {
e.printStackTrace();
}
}
для непрерывного зацикливания файла .wav, и он работает, затем я пытаюсь сохранить файл с этим кодом:
public void save(String music, String output) {
try {
File sound = new File(music);
AudioInputStream ais = AudioSystem.getAudioInputStream(sound);
AudioSystem.write(ais, AudioFileFormat.Type.WAVE, new File(output));
} catch (IOException | UnsupportedAudioFileException e) {
e.printStackTrace();
}
}
И это, кажется, работает, когда я делаю что-то вроде этого:
save("D:\\Eclipse\\eclipse\\workspace\\Test\\data\\music.wav", "C:\\Users\\Karim\\Desktop\\data\\test.wav");
loop("C:\\Users\\Karim\\Desktop\\data\\test.wav", -30);
Но если я попытаюсь сделать это вместо этого:
private File jar() {
try {
File jar = new File(Game.class.getProtectionDomain().getCodeSource().getLocation().toURI().getPath());
return jar;
} catch (URISyntaxException e) {
e.printStackTrace();
}
return null;
}
private File data = new File(jar().getParentFile().getPath()+File.separator+"\\data");
private File music = new File(data.getPath()+"\\music.wav");
save(music.getPath(), "C:\\Users\\Karim\\Desktop\\data\\test.wav");
loop("C:\\Users\\Karim\\Desktop\\data\\test.wav", -30);
он не сохранит файл, почему и что я могу сделать, чтобы сохранить его?
Заключительные замечания:
- Я довольно новичок в Java.
- Я довольно новичок в программировании сам по себе.
- Я не хочу использовать библиотеку, я хочу попытаться заставить ее работать, и я так близко.
- Если я забыл что-то сказать, пожалуйста, дайте мне знать, и я отредактирую этот пост или оставлю комментарий.
РЕДАКТИРОВАТЬ: Просто хотел прояснить, что это работает в IDE, но не при экспорте. Также у меня есть папка данных в папке 'src' и рядом с папкой 'src', просто для тестирования.