Устаревшие учебники кажутся растущей проблемой!
Я интерпретирую комментарий OP как задание следующего вопроса: как адресовать и загружать аудиофайл, который является локальным, то есть упакован с помощью Java-программы,удаленный доступ невозможен.
Ссылка, предоставленная Эндрю Томпсоном в комментариях, полезна, но в ней нет примера обращения к автономному аудиофайлу.Я не знаю, как отредактировать его, чтобы включить пример.Oracle Sound Trail Tutorial по тем или иным причинам имеет недостатки.
Прежде всего, форма URL для создания AudioInputStream
, как правило, лучше всего подходит:
AudioInputStream ais = AudioSystem.getAudioInputStream(url);
Почему?Потому что он имеет дополнительную возможность поиска ресурсов, которые упакованы в банку, а файловая система не может.
Я думаю, что наиболее обычная практика для доступа к автономному аудиоресурсу - использовать * 1013.* ClassLoader для класса, который, как вы уверены, будет частью вашего проекта.Адрес аудио-ресурса затем дается как относительный адрес к адресу этого класса.
Например, предположим, у вас есть класс "MySound" в вашем проекте.Если аудиофайлы находятся в одной папке или пакете, относительная схема адресации будет выглядеть следующим образом:
URL beepURL = MySound.class.getResource("beep.wav");
Если аудиофайл находится в подпапке или подпакете той, где находится MySound, напримерКоманда "/ audio" будет выглядеть следующим образом:
URL beepURL = MySound.class.getResource("audio/beep.wav");
Должны работать основные правила HTML для указания относительных адресов.Это включает в себя такие символы, как «..» для адресации родительской папки или пакета.
Например, если у вас есть пакет с именем res / audio, который находится рядом с пакетом, содержащим MySound
URL beepURL = MySound.class.getResource("../res/audio/beep.wav");
Структура файла для приведенного выше примера:
src/com.mydomainname.myproject/utils/MySound
src/com.mydomainname.myproject/res/audio/beep.wav
Существуют различные правила, которые применяются, если вы начинаете адрес URL с "/", как "/beep.wav".В документации это называется «абсолютной» формой.Я не использовал его в своем собственном кодировании, поэтому я не рискну объяснить его некорректным образом.
В примере JavaSound Info Page мы могли бы отредактировать эти строки следующим образом:
URL url = LoopSound.class.getResource("leftright.wav");
Clip clip = AudioSystem.getClip();
AudioInputStream ais = AudioSystem.getAudioInputStream( url );
clip.open(ais);
Предполагается, что leftright.wav находится в том же пакете, что и LoopSound.