gpt4 book ai didi

java - 一旦以jar/zip格式导出,AudioInputStream无法正常工作

转载 作者:行者123 更新时间:2023-12-03 02:05:46 29 4
gpt4 key购买 nike

所以我想通过mp3spi库播放声音(mp3文件)。我应该补充一点,这个项目是要在另一个程序(如附加程序)中运行的,因此它本身除了调试类外没有任何主类。当我从该调试类运行项目时,一切工作正常,但是从主程序内部运行它时(我应该补充一点,将附件导出为jar和zip文件,然后将zip文件加载到主程序)我得到一个javax.sound.sampled.UnsupportedAudioFileException。我认为问题与附件未正确连接到库有关,但所有mp3spi jar都包含在lib文件夹中。

我们正在使用maven来构建所有附加组件和主程序,因此我也尝试将类路径添加到 list 文件中。 (在maven-jar-plugin中,就像许多其他堆栈溢出文章中所建议的那样),它似乎可以为其他人工作,但不适用于我。其他人也建议使jar可运行,因此我将调试类添加为主类,然后再次尝试,该方法也不起作用。

无论如何,我已经迷失了方向,无法尝试。任何帮助将非常感激!

这是再次导致错误的代码:

 String path = soundFileMap.get(soundId);
try {
inputStream = AudioSystem.getAudioInputStream(new File(path));
... (rest not shown)

这是一个异常(exception):
javax.sound.sampled.UnsupportedAudioFileException: format not supported
at javax.sound.sampled.AudioSystem.getAudioInputStreamImpl(AudioSystem.java:1023) ~[tritonus share-0.3.7-2.jar:?]
at javax.sound.sampled.AudioSystem.getAudioInputStream(AudioSystem.java:1005) ~[tritonus-share-0.3.7-2.jar:?]
at jundl77.izou.izousound.outputplugin.SoundEngine.playSoundFile(SoundEngine.java:298) [classes/:?]
at jundl77.izou.izousound.outputplugin.SoundEngine.run(SoundEngine.java:382) [classes/:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [?:1.8.0_20]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [?:1.8.0_20]
at java.lang.Thread.run(Thread.java:745) [?:1.8.0_20]

这是我的maven-jar-plugin的样子:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<configuration>
<archive>
<manifestEntries>
<Plugin-Id>${plugin.id}</Plugin-Id>
<Plugin-Class>${plugin.class}</Plugin-Class>
<Plugin-Version>${plugin.version}</Plugin-Version>
<Plugin-Provider>${plugin.provider}</Plugin-Provider>
<Plugin-Dependencies>${plugin.dependencies}</Plugin-Dependencies>
</manifestEntries>
<manifest>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
<addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
<addClasspath>true</addClasspath>
<mainClass>jundl77.izou.izousound.Debug</mainClass>
</manifest>
</archive>
</configuration>
</plugin>

无论如何,再次提供任何帮助将不胜感激。

最佳答案

最好直接从URL或File(而不是InputStream)创建AudioInputStream。鉴于资源打包在一个Jar中,因此您应该使用URL,因为不能从jar中读取文件。

关于java - 一旦以jar/zip格式导出,AudioInputStream无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27885129/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com