运行时的 Java Carbon 组件警告 - OS X

标签 java audio

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

015-10-13 10:00:16.922 java[39731:970632] 10:00:16.922 WARNING: 140: This application, or a library it uses, is using the deprecated Carbon Component Manager for hosting Audio Units. Support for this will be removed in a future release. Also, this makes the host incompatible with version 3 audio units. Please transition to the API's in 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){

    }

}

最佳答案

长话短说:

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

长格式:

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

首先,这是 Apple 特有的问题。我们看到的警告实际上是控制台日志注释,如果您打开控制台并查找时间戳,就可以看到它。 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。我的控制台警告(我猜)源于在 SimpleCV 中使用 Camera() 拍照时播放的快门声。

关于运行时的 Java Carbon 组件警告 - OS X,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33098495/

相关文章:

java - org.openqa.selenium.firefox.FirefoxDriver 类型不可访问

java - 计算球体上两个大圆之间的角度

java - 用于 Java 开发的 Linux 发行版

java - Android 音频流的 UDP 或 TCP

.net - 如何在 C# 中使用 NAudio 将 3 个 wav 文件加入到具有 3 个 channel 的单个文件中?

Java多人卡牌游戏AI集成

c# - 将 Timer 类从 java 转换为 c# : scheduling tasks

audio - 开源3D位置音频(HRTF)?

c++ - QSound播放.wav文件时出现意外的null接收器

html - HTML5音频-在Safari上搜索后,currentTime属性错误