我有一个小型 Maven Java 项目,需要播放 WAV 文件,因此src/main/resources/*
为了简单起见,我更愿意将文件放入文件夹中。但是,如果将使用从磁盘加载的相同 WAV 文件AudioSystem.getAudioInputStream(...)
放入 Maven 资源目录中,则程序会抛出一个 RIFFInvalidDataException 实例:
com.sun.media.sound.RIFFInvalidDataException: Chunk size too big
at com.sun.media.sound.RIFFReader.<init>(RIFFReader.java:82)
at com.sun.media.sound.WaveFloatFileReader.internal_getAudioFileFormat(WaveFloatFileReader.java:65)
at com.sun.media.sound.WaveFloatFileReader.getAudioFileFormat(WaveFloatFileReader.java:55)
at com.sun.media.sound.WaveFloatFileReader.getAudioInputStream(WaveFloatFileReader.java:117)
at javax.sound.sampled.AudioSystem.getAudioInputStream(AudioSystem.java:1113)
at se.kth.speech.coin.tangrams.TangramsClient.playSound(TangramsClient.java:276)
at se.kth.speech.coin.tangrams.TangramsClient.signalGameStart(TangramsClient.java:335)
... 17 more
此外,如果我使用VLC尝试打开 .wav 文件$PROJECT/target/classes/org/coolproject/audio/
,程序实际上会崩溃;原始文件处理没有任何问题
Maven 到底在用我的音频文件做什么?我正在使用 Eclipse Neon.3 v4.6.3 (build 20170314-1500) 中嵌入的 3.3.9/1.7.0.20160603-1931 版本,不幸的是无法尝试使用 Eclipse 之外的“正确”Maven 实例构建项目,因为构建依赖于旧 Eclipse 项目的噩梦混合体,包括 Java 源代码和预编译的 DLL 以及仅限 Java 的 Maven 项目。
您可能有具有副作用的过滤。根据资源插件的文档,您可以像这样禁用过滤:
<project>
...
<build>
...
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>false</filtering>
</resource>
...
</resources>
...
</build>
...
</project>
要查看文档,请看这里
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句