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

Vol*_*ken 5 java audio

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

015-10-13 10:00:16.922 java [39731:970632] 10:00:16.922警告:140:此应用程序或其使用的库正在使用不推荐使用的Carbon Component Manager来托管Audio Units.将来的版本中将删除对此的支持.此外,这使主机与版本3音频单元不兼容.请转换到API中AudioComponent.h.

这是什么意思,我需要做些什么才能解决这个错误?

这是播放声音的方法:

 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){

    }

}
Run Code Online (Sandbox Code Playgroud)

小智 4

长话短说:

这是针对负责声音处理程序的开发人员的控制台警告,在本例中看起来像AudioSystem. 您的程序应该可以工作,但它会不断抛出这些警告。您使用的是旧版本的 Java 吗?这或许可以解释这个问题。

长表:

我遇到这个问题是因为我在 Python 中使用 SimpleCV 时收到了相同的警告(具有不同的时间和进程标记)。我做了一些挖掘,我想我至少可以详细说明这个问题,即使不能解决它。

首先,这是苹果特有的问题。我们看到的警告实际上是控制台日志注释,如果您打开控制台并查找时间戳,则可以看到该警告。Carbon Component Manager 是 Mac 处理声音的一种已弃用的方式,并且正在被使用AudioComponent.h. 看起来AudioSystem仍在以旧的方式开展业务。此注释向开发人员发出信号,表明他们需要更新才能AudioSystem与新 API 交互。较新的 Java 版本可能已经解决了这个问题。如果您忽略它,您的程序应该可以正常工作,但您可以尝试使用较新的 Java 版本,看看是否有帮助。

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

有关 Carbon Core 弃用的更多信息:

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

如果其他人在 SimpleCV/Python 中遇到此问题,为了完整起见:

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