题
对于我正在制作的电脑游戏,我显然想播放声音。到目前为止,我一直在使用AudioClip来播放WAV文件。虽然这种方法工作正常,但WAV文件往往是巨大的。几秒钟的声音最终达到数百kB。我面临的游戏下载是95%的音频!
这里显而易见的选择是使用MP3或Ogg Vorbis。但是我在这方面取得了有限的成功 - 我可以使用JLayer播放MP3(但它在同一个帖子中播放)。至于奥格,我根本就没有运气。更糟糕的是,JLayer的法律地位有点可疑。
所以我的问题是Java开发人员和普遍了解声音的人:我该怎么办?我能以某种方式“修剪脂肪”吗?关闭我的WAV?有没有办法在Java中玩Ogg?我应该使用其他一些声音格式吗?
其他提示
这些可能已经过时,但Xiph.org团队(维护Ogg和Vorbis等)正式认可。 http://www.vorbis.com/software/#java
您描述的问题由Java的声音服务提供程序接口(SPI)解决。结果是,只需将JAR文件添加到类路径中,就会为默认的Java Sound API添加功能。因此,无需更改代码即可处理更多声音格式。
上次我试过这个时, Javazoom 的人们提供了一个可用的MP3 SPI JAR。这是基于你提到的JLayer。
对于Vorbis OGG,现在似乎也有一个SPI库。查看Javazoom上 Vorbis SPI 上的文档。
如果您决定继续使用wav格式...
拥有高质量的声音文件可能并不是很重要。您可以使用自己喜欢的wav编辑器来降低比特率,切换到单声道,或两者兼而有之。这将节省大量的空间,你不会注意到玩游戏时的质量差异。
希望这有帮助。
不隶属于 StackOverflow