Я пытаюсь добавить возможности MP3 в свой проект платформы Netbeans в Netbeans 8.0. Я понимаю, что это можно легко добавить в библиотеки javax.sound.sampled с помощью ServiceLoader и SPI для кодеков MP3.
Поэтому я загрузил MP3 SPI и разархивировал его, а затем в Netbeans создал модуль-оболочку Jar с три jar-файла, которые были в zip-файле (один jar был в корне zip-файла, а два — под lib/
). Затем я сделал модули, которым нужна функциональность MP3, зависимыми от этого модуля-оболочки. Но когда я вызываю AudioSystem.getAudioFileTypes()
в этих модулях, «MP3» не является одним из типов (только «WAVE», «AU» и «AIFF»)
Что мне не хватает?
Я проверил, что правильные файлы перечислены под META-INF/services
в главном банке.
мне нужно воссоздать структуру lib/
в моем модуле-оболочке? Имеет ли значение, какую кодовую базу я использую для модуля-оболочки? Нужно ли как-то предупреждать ServiceLoader в моем коде?
Вот метаданные проекта для модуля-оболочки:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://www.netbeans.org/ns/project/1">
<type>org.netbeans.modules.apisupport.project</type>
<configuration>
<data xmlns="http://www.netbeans.org/ns/nb-module-project/3">
<code-name-base>org.sil.wrapper.mp3spi</code-name-base>
<suite-component/>
<module-dependencies/>
<public-packages>
<package>javazoom.jl.converter</package>
<package>javazoom.jl.decoder</package>
<package>javazoom.jl.player</package>
<package>javazoom.jl.player.advanced</package>
<package>javazoom.spi</package>
<package>javazoom.spi.mpeg.sampled.convert</package>
<package>javazoom.spi.mpeg.sampled.file</package>
<package>javazoom.spi.mpeg.sampled.file.tag</package>
<package>org.tritonus.share</package>
<package>org.tritonus.share.midi</package>
<package>org.tritonus.share.sampled</package>
<package>org.tritonus.share.sampled.convert</package>
<package>org.tritonus.share.sampled.file</package>
<package>org.tritonus.share.sampled.mixer</package>
</public-packages>
<class-path-extension>
<runtime-relative-path>ext/mp3spi1.9.5.jar</runtime-relative-path>
<binary-origin>release/modules/ext/mp3spi1.9.5.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/tritonus_share.jar</runtime-relative-path>
<binary-origin>release/modules/ext/tritonus_share.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/jl1.0.1.jar</runtime-relative-path>
<binary-origin>release/modules/ext/jl1.0.1.jar</binary-origin>
</class-path-extension>
</data>
</configuration>
</project>