【发布时间】:2018-06-21 09:52:34
【问题描述】:
我刚刚安装了 Unity 3D,因为我想制作一个简单的游戏。不过,NAudio 库存在一个问题。
这是我的代码:
var enumerator = new MMDeviceEnumerator();
if (enumerator.HasDefaultAudioEndpoint(DataFlow.Render, Role.Multimedia)) //<--- crashes here
{
//...
}
这就是 Unity 在尝试启动游戏时所说的所有内容:
NullReferenceException: 对象引用未设置为 对象 NAudio.CoreAudioApi.MMDeviceEnumerator.HasDefaultAudioEndpoint (DataFlow 数据流,角色角色)
我不明白为什么它会在这里抛出这种错误。 会不会是这个库不兼容这个版本的net framework(3.5版)?
编辑:变量枚举器不能为空,因此请停止将此帖子标记为“什么是 NullReferenceException,我该如何解决?”的重复项?
我也尝试过使用这个库:https://code.google.com/archive/p/naudio-with-unity3d/downloads
该库仅不包含 HasDefaultAudioEndpoint() 函数,因此我只是尝试通过调用 GetDefaultAudioEndpoint() 直接获取音频端点,但它仍然在该行上抛出了同样的错误。
【问题讨论】:
-
从技术上讲,这不是崩溃的代码行。这是对包含崩溃代码行的函数的调用。
-
您应该调试您的
enumerator变量。您尝试使用的变量可能为 null,这就是您收到 NullReferenceException 的原因。因为这是您提供给我们的唯一文本。我猜是你的var enumerator。 -
我再说一遍:
NullPointerException=> JAVA,NullReferenceException=> .NET。不知道为什么你的标题说指针。 -
@CamiloTerevinto 抱歉,在写标题时搞混了
标签: c# unity3d .net-3.5 naudio