运行时的Java Carbon Component警告 - OS X

时间:2015-10-13 09:06:42

标签: java audio

我最近学会了如何将声音添加到我正在制作的小蛇游戏中。当蛇吃苹果时声音会播放。我遇到的问题是每次蛇吃苹果我都会在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){

    }

}

1 个答案:

答案 0 :(得分:4)

TL; DR:

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

长片:

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

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

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

有关碳核弃用的更多信息:

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中拍照时播放的快门声。