运行时的Java Carbon Component警告 – OS X.

我最近学会了如何将声音添加到我正在创建的小蛇游戏中。 当蛇吃苹果时声音会播放。 我遇到的问题是每次蛇吃苹果我都会在cosole中得到这个警告(但程序继续运行):

015-10-13 10:00:16.922 java [39731:970632] 10:00:16.922警告:140:此应用程序或其使用的库正在使用不推荐使用的Carbon Component Manager来托管Audio Units。 将来的版本中将删除对此的支持。 此外,这使主机与版本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){ } } 

TL; DR:

这是一个控制台警告,供负责声音处理程序的开发人员使用,在本例中看起来像AudioSystem 。 你的程序应该工作,但它会继续抛出这些警告。 您使用的是旧版Java吗? 这可能解释了这个问题。

长表:

我遇到了这个问题,因为我在Python中使用SimpleCV获得了相同的警告(使用不同的时间和流程标记)。 我做了一点挖掘,我想我至少可以解决这个问题,如果不解决的话。

首先,这是Apple特有的问题。 我们看到的警告实际上是一个控制台日志记录,如果您打开控制台并查找时间戳,则可以看到该记录。 Carbon Component Manager是Macs处理声音的一种不推荐使用的方式,并且正在逐步淘汰使用AudioComponent.h的更新方式。 看起来AudioSystem仍然以较旧的方式开展业务。 本说明向开发人员发出信号,告知他们需要更新AudioSystem以与新API进行交互。 这可能已在较新的Java版本中得到解决。 如果您忽略它,您的程序应该可以正常工作,但您可以尝试使用较新的Java版本来查看是否有帮助。

我建议您编辑问题以包含系统规格和Java版本。

有关Carbon Core Deprecation的更多信息:

https://developer.apple.com/library/mac/releasenotes/General/CarbonCoreDeprecations/

如果其他人从SimpleCV / Python遇到此问题,并且为了完整性:

我使用Python 3.5和SimpleCV 1.3在Macbook Pro(2011年末)上运行OSX El Capitan。 我的控制台警告(我猜是)源于使用Camera()在SimpleCV中拍照时播放的快门声。