使用 NAudio 更改默认音频输出设备

时间:2021-05-05 08:23:51

标签: c# .net naudio

我想使用 NAudio 更改 Windows 10 默认音频输出。

NAudio 有一个获取默认音频端点的 api:

var enumerator = new MMDeviceEnumerator();
var audioOutputDevice = enumerator.GetDefaultAudioEndpoint(DataFlow.Render, Role.Console);

我想设置该默认音频端点。

1 个答案:

答案 0 :(得分:1)

最后我找不到任何关于 NAudio 的解决方案。我用 PowerShell 做到了:

  1. AudioDeviceCmdlets nuget 包从 here 添加到您的项目。

  2. 那么我们应该使用 Set-AudioDevice 命令来设置默认音频设备。它使用设备 ID 或索引。在 C# 代码中,我们需要一个 PowerShell nuget 包。该包已添加为 AudioDeviceCmdlets nuget 包的依赖项,因此请不要采取任何措施并转到下一步。

  3. 使用此代码设置默认设备:

InitialSessionState iss = InitialSessionState.CreateDefault();
iss.ImportPSModule(new string[]
{
Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "AudioDeviceCmdlets.dll")
});

Runspace runspace = RunspaceFactory.CreateRunspace(iss);
runspace.Open();

Pipeline pipeline = runspace.CreatePipeline();

Command command_set = new Command("Set-AudioDevice");
CommandParameter param_set = new CommandParameter("ID", id);
command_set.Parameters.Add(param_set);
pipeline.Commands.Add(command_set);

// Execute PowerShell script
var results = pipeline.Invoke();
相关问题