C# NAudio 如何强制/硬编码音频设备(声卡)?

Posted

技术标签:

【中文标题】C# NAudio 如何强制/硬编码音频设备(声卡)?【英文标题】:C# NAudio How to force/hardcode audio device (soundcard)? 【发布时间】:2019-11-26 20:17:55 【问题描述】:

我正在尝试将音频设备强制插入 NAudio 播放器,但我无法解决。目前,我继承的代码使用组合框来选择设备并使用它,但我想硬编码。

从下面注释行的代码中,您可以看到我已经尝试过的内容,但它们都显示错误,所以我无法以某种方式正确。

谁能帮我解决这个问题?

我想要的结果是“强制”NAudio 使用“扬声器(高清晰度音频设备)”音频设备,而不是从组合框中选择它。

谢谢

NAudio.CoreAudioApi.MMDeviceEnumerator enumerator = new NAudio.CoreAudioApi.MMDeviceEnumerator();
var devices = enumerator.EnumerateAudioEndPoints(NAudio.CoreAudioApi.DataFlow.All, NAudio.CoreAudioApi.DeviceState.Active);
Globals.NewDevice = devices.ToString();
comboBox1.Items.AddRange(devices.ToArray());



if (comboBox1.SelectedItem != null)
    
    var device = (NAudio.CoreAudioApi.MMDevice)comboBox1.SelectedItem;
    //var device = (NAudio.CoreAudioApi.MMDevice.Equals.("Speakers (High Definition Audio Device)"); 
    //var device = (NAudio.CoreAudioApi.MMDevice)."Speakers (High Definition Audio Device)";
    //var device = (NAudio.CoreAudioApi.MMDevice)"Speakers (High Definition Audio Device)";
    //var device = NAudio.CoreAudioApi.MMDevice."Speakers (High Definition Audio Device)";
    //var device = (NAudio.CoreAudioApi.MMDevice.ReferenceEquals."Speakers (High Definition Audio Device)");

【问题讨论】:

【参考方案1】:

原来我可以这样做:

comboBox1.Text = "Speakers (High Definition Audio Device)";

感谢您的反对...

【讨论】:

以上是关于C# NAudio 如何强制/硬编码音频设备(声卡)?的主要内容,如果未能解决你的问题,请参考以下文章

NAudio:在保持声卡打开的同时播放许多音频文件

如何将音频流从输出设备发送到输入设备?

从设备发送 NAudio / Opus 编码的音频作为 RTP

使用 C# 在特定设备中播放声音

是否可以在 C# 中使用 NAudio 创建新的音频输入?

使用 naudio 动态播放音频文件