我最近学会了如何将声音添加到我正在制作的小蛇游戏中。当蛇吃苹果时声音会播放。我遇到的问题是每次蛇吃苹果我都会在cosole中得到这个警告(但程序继续运行):
015-10-13 10:00:16.922 java [39731:970632] 10:00:16.922警告:140:此应用程序或其使用的库正在使用不推荐使用的Carbon Component Manager来托管音频单元。将来的版本中将删除对此的支持。此外,这使主机与版本3音频单元不兼容。请转到
AudioComponent.h
中的API。
这是什么意思,我需要做些什么才能解决这个错误?
这是播放声音的方法:
private static void playSound(File Sound){
try{
Clip clip = AudioSystem.getClip();
clip.open(AudioSystem.getAudioInputStream(Sound));
clip.start();
Thread.sleep(clip.getMicrosecondLength()/1000);
}catch(Exception e){
}
}
答案 0 :(得分:4)
这是一个控制台警告,供负责声音处理程序的开发人员使用,在本例中看起来像AudioSystem
。你的程序应该可行,但它会继续抛出这些警告。您使用的是旧版Java吗?这可能解释了这个问题。
我遇到了这个问题,因为我在Python中使用SimpleCV获得了相同的警告(使用不同的时间和流程标记)。我做了一点挖掘,我想我至少可以解决这个问题,如果不解决的话。
首先,这是Apple特有的问题。我们看到的警告实际上是一个控制台日志记录,如果您打开控制台并查找时间戳,则可以看到该记录。碳组件管理器是Macs处理声音的一种不推荐使用的方式,并且正在逐步淘汰以使用AudioComponent.h
的更新方式。
看起来AudioSystem
仍旧以旧方式开展业务。本说明向开发人员发出信号,要求他们更新AudioSystem
以与新API进行交互。它可能已在较新的Java版本中得到解决。如果您忽略它,您的程序应该可以正常工作,但您可以尝试使用较新的Java版本来查看是否有帮助。
我建议编辑您的问题以包含您的系统规格和Java版本。
https://developer.apple.com/library/mac/releasenotes/General/CarbonCoreDeprecations/
我使用Python 3.5和SimpleCV 1.3在Macbook Pro(2011年末)上运行OSX El Capitan。我的控制台警告(我猜测)源于使用Camera()在SimpleCV中拍照时播放的快门声。