"AccessDenied"时调用CreateDeviceInputNodeAsync

Gid*_*eon 1 c# windows uwp

当我按照微软的文章使用AudioDeviceInputNode类时,我收到"AccessDenied"错误.这是我的代码:

public sealed partial class MainPage : Page {
  private AudioGraph graph = null;
  private AudioDeviceInputNode deviceInputNode = null;

  public MainPage() {
    this.InitializeComponent();
  }

  private async Task CreateAudioGraph() {

    // Create an AudioGraph with default settings
    AudioGraphSettings settings = new AudioGraphSettings(AudioRenderCategory.Media);

    CreateAudioGraphResult result = await AudioGraph.CreateAsync(settings);

    if (result.Status != AudioGraphCreationStatus.Success) {
      // Cannot create graph
      await new ContentDialog() {
        Title = "Error",
        Content = String.Format("AudioGraph Creation Error because {0}", result.Status.ToString())
      }.ShowAsync();
      return;
    }

    graph = result.Graph;

    // Create a device input node
    CreateAudioDeviceInputNodeResult inputDeviceNodeResult = await graph.CreateDeviceInputNodeAsync(Windows.Media.Capture.MediaCategory.Other);

    if (inputDeviceNodeResult.Status != AudioDeviceNodeCreationStatus.Success) {
      // Cannot create device input node
      await new ContentDialog() {
        Title = "Error",
        Content = String.Format("DeviceInputNode Creation Error because {0}", inputDeviceNodeResult.Status.ToString()),
        PrimaryButtonText = "OK",
        IsSecondaryButtonEnabled = false
      }.ShowAsync();
      return;
    }
    deviceInputNode = inputDeviceNodeResult.DeviceInputNode;
  }

  private async void button_Click(object sender, RoutedEventArgs e) {
    await CreateAudioGraph();
  }
}
Run Code Online (Sandbox Code Playgroud)

但我能够运行官方样本.对这个问题有什么看法吗?

Gid*_*eon 5

我想到了.如果要使用AudioDeviceInputNode,则需要在项目中打开Package.appxmanifest并检查"功能"选项卡中的"麦克风".