В Netbeans 8.0 у меня есть проект с несколькими модулями. Я хочу, чтобы один модуль открывал средство выбора файлов для аудиофайлов, которые приложение будет воспроизводить с использованием библиотеки javax.sound.sampled. Я использую AudioSystem.getAudioFileTypes()
, чтобы получить типы файлов, которые можно использовать, и вижу, что доступно только 3 (wav, au и aif), но я также хотел бы иметь дело с mp3, ogg и flac .
Итак, я скачал SPI для нужных мне кодеков. Вся документация говорит мне, что мне нужно только поместить jar-файлы в путь к классам, и кодеки станут доступны для звуковой библиотеки Java. В моем проекте я хочу, чтобы эти библиотеки могли использовать несколько модулей, поэтому я создал для них оболочки модулей. Так, например, у меня в проекте есть один модуль под названием jflac-1.3-jdk, который обертывает два jar-файла: jflac-1.3-jdk1.4.jar и jflac-1.3.jar, затем я устанавливаю модуль, который будет открывать средство выбора файлов, в зависимости от этих модулей, которые обертывают jar-файлы.
Тем не менее, доступны только те же 3 типа файлов. Что мне не хватает?
Вот код в верхнем компоненте модуля, который зависит от модулей оболочки:
private static String[] audioFileExtensions;
static
{
AudioFileFormat.Type[] formatTypes = AudioSystem.getAudioFileTypes();
audioFileExtensions = new String[formatTypes.length];
for (int i = 0; i < formatTypes.length; i++) {
audioFileExtensions[i] = formatTypes[i].getExtension();
}
}
Я использую отладчик в этом коде, чтобы убедиться, что нужные мне типы файлов недоступны.