【问题标题】:Java Carbon Component warning on runtime - OS X运行时 Java Carbon 组件警告 - OS X
【发布时间】:2015-10-13 09:06:41
【问题描述】:

我最近学会了如何在我正在创建的小型蛇游戏中添加声音。蛇吃苹果时会发出声音。我遇到的问题是每次蛇吃苹果时,我都会在 cosole 中收到此警告(但程序继续运行):

015-10-13 10:00:16.922 java[39731:970632] 10:00:16.922 警告:140:此应用程序或其使用的库正在使用已弃用的 Carbon 组件管理器来托管音频单元。将来的版本中将删除对此的支持。此外,这使得主机与版本 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){

    }

}

【问题讨论】:

    标签: java audio


    【解决方案1】:

    TL;DR:

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

    长格式:

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

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

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

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

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

    万一其他人从 SimpleCV/Python 遇到这个问题,为了完整性:

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

    【讨论】:

    • 我们能做些什么呢?我在 2015 Macbook Pro 上安装了最新的 java 版本。
    • 有人提出解决方案吗?
    • 在使用 espeak 时得到这个。
    猜你喜欢
    • 1970-01-01
    • 2013-11-07
    • 1970-01-01
    • 2023-04-11
    • 1970-01-01
    • 2011-07-31
    • 1970-01-01
    • 2015-05-05
    • 2013-05-13
    相关资源
    最近更新 更多