Java的声音库

3
我正在开发一个Java小程序,使用javax.sound.midi.sequencer播放MIDI序列。为了使其正常工作,访问者需要在计算机上安装声音库。显然,Windows JRE没有声音库,必须从http://java.sun.com/products/java-media/sound/soundbanks.html下载。但是,可以从文件中加载声音库,而无需经过安装过程。那么,我的问题来了:有人知道我可以在哪里找到可重新分发(开源)的JavaSound兼容声音库吗?或者,是否有任何合法方式可以重新分发上述URL中的Sun声音库,而不必重新分发整个JRE?我想拥有一个可以从文件中即时加载的声音库,以供我的小程序使用。
3个回答

1

无论是JDK README还是JRE README都包含了一个关于声音库的重新分发部分:

...... JDK 的 soundbank.gm 文件可以根据供应商的自由裁量权被包含在 JRE 的重新分发中。Java Sound 网站提供了多个增强型 MIDI 声音库版本:http://java.sun.com/products/java-media/sound/。这些替代声音库可以被包含在 JRE 的重新分发中。

这使得它们看起来可以被重新分发,但只能作为 JRE 的一部分......


是的,我也注意到了那部分。但是,我不确定这是否意味着声音库不能单独重新分发……我认为这只是允许修改JRE/JDK可再分发文件以包含声音库文件。 - Jonathan

0

我查看了你提供的Oracle网站,我不明白为什么你不能将soundbank.gm文件作为你的小程序的一部分。

我认为在你的小程序中添加版权声明可以满足许可证条款。

声音库版权 © 2008, 2010 Oracle及/或其附属公司。保留所有权利。使用受许可条款限制。

如果你想要更加安全,请联系Oracle并咨询他们。


谢谢提供链接...我可能会尝试联系Oracle解决这个问题。 - Jonathan

0

你链接的页面声称如果没有音色库,则会回退到硬件MIDI端口。

我想一个更好的问题是……你有没有尝试过在没有音色库的情况下使用它?

顺便说一句,大多数浏览器都可以很好地播放MIDI文件,所以我不确定为什么你需要一个小程序来做这个,除非它是其他某些东西的背景音乐。


是的,我已经尝试过不使用声音库。当没有安装声音库时,如果我调用MidiSystem.getSynthesizer().getAvailableInstruments(),我将得到一个长度为零的数组。我的应用程序需要获取可用的乐器列表,如果没有声音库,则无法实现。我之所以使用小应用程序来播放这个MIDI文件,是因为该小应用程序实际上是动态生成的MIDI数据(它不只是播放一个MIDI文件)。 - Jonathan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接