Как получить файл .wav или .mid для воспроизведения за пределами NetBeans? - PullRequest
0 голосов
/ 18 октября 2011

Я создал простой экран входа для тестовой игры, и он воспроизводит мелодию .mid. Звуки .wav воспроизводятся при наведении курсора на кнопку. Когда я собираю + компилирую программу, оба звука воспроизводятся внутри сетевых компонентов. Когда я запускаю файл .jar за пределами NetBeans, он не работает. Любые предложения ...

P.S. Звуки находятся в папке внутри папки src, называемой ресурсами. Для музыки .mid я использую последовательность, а для .wav я использую AudioInputStream и тому подобное.

Ответы [ 3 ]

1 голос
/ 18 октября 2011

Скорее всего, вы пытаетесь получить доступ к ресурсам приложения, как если бы они были File. Ресурс приложения обычно находится внутри файла Jar, и к нему должен обращаться URL. Чтобы сформировать URL, используйте что-то вроде:

URL urlToMid = this.getClass().getResource("the.mid");

Если это не так, то следующая наиболее вероятная проблема заключается в том, что ресурс не включен в Jar.

0 голосов
/ 18 октября 2011

Если файлы включены в сгенерированный файл .jar, другая возможная проблема - чувствительность к регистру. Если файл загружается из обычной файловой системы (например, изнутри NetBeans), зависит от файловой системы вашей операционной системы, если имя файла чувствительно к регистру или нет. На Windows это не так.

Как только файл загружен через загрузчик классов (например, с помощью getResource ()), имя файла чувствительно к регистру, и Alert.wav - это файл, отличный от alert.wav.

Убедитесь, что имя файла в исходном коде равно точно так же, как в файловой системе.

0 голосов
/ 18 октября 2011

Без примера кода вам сложно выручить.Вы получаете исключение?

Я предполагаю, что ваше приложение не может найти музыкальные файлы при работе за пределами NetBeans.Для вашего домашнего каталога должно быть задано какое-то значение при запуске из NetBeans (возможно, оно указывает на вашу папку src / resource), но вы указываете другое домашнее местоположение (или его вообще нет) при работе вне NetBeans.

...