适用于 Windows 10 通用应用程序的 C# NAudio

标签 c# microsoft-metro naudio

我正在开发一个针对 Windows 10 的通用平台应用程序。我在一个运行良好的控制台应用程序中模拟了大部分逻辑,但我在尝试将其引入时遇到“访问被拒绝”异常 metro 系统。

我已经追踪到了 NAudio 库,我用它来获取 Wasapi 环回设备。一切正常,直到我触发 Wasapi 设备上的录制方法。

这是我的第一个 Metro 应用程序,我对应用程序 list 有点困惑。通常我会在 list 中添加提升的安全权限请求,但现在看来我需要使用“功能”和“声明”。我尝试使用 NAudio 作为入口点的类库添加后台任务音频声明。我还尝试启用列出的所有功能。这些方法都没有成功。

正如我所说,这是我的第一个 metro 类型应用程序,因此这可能是一个微不足道的问题,但我们将不胜感激。

最佳答案

TLDR;找到了解决方案,在系统设置中启用麦克风对应用程序的访问。

错误跟踪供引用:经过一点(大量)挖掘,我找到了确切的错误:

An exception of type 'System.UnauthorizedAccessException' occurred in mscorlib.ni.dll but was not handled in user code Additional information: Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))

这是由Mmdevapi.dll抛出的。 NAudio/WASAPI 环回捕获需要我已启用的麦克风功能,但我在系统范围内禁用了麦克风功能作为系统首选项。 系统/隐私/麦克风。更改此设置以允许应用程序使用麦克风修复了此问题。

非常愚蠢,但却让我很头疼。希望这可以在将来节省其他人的时间。

关于适用于 Windows 10 通用应用程序的 C# NAudio,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36540229/

相关文章:

c# - 检查 GridView 中的所有复选框

c# - 没有缩略图的文件在 Win 8 Metro 中抛出 COM 异常

c# - 音频捕获未按预期工作

c# - 多线程和事件

c# - 更改 EF 连接字符串给出 - 不支持关键字 : 'metadata'

c# - 如何检测一个对象是一个泛型集合,以及它包含哪些类型?

c# - 我们可以将 Nullable<DateTime> 用作 Metro 风格应用程序的 XAML 中的 DependencyProperty

c# - 使用 C# 的 Metro 风格应用教程

C# NAudio 获取音频文件持续时间/性能

c# - NAudio效果不起作用,并且在不同的声卡上的行为不同