You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用C#获取桌面音频播放响度并实现可视化?

获取桌面音频响度(用于可视化程序)

我想找到一种获取桌面音频播放响度属性的方法,用于我的可视化程序,并且打算通过循环实现。目前我还没有尝试任何方法,因为完全不知道该怎么做。(我不想录制音频,只想像OBS Studio音频混音器中的桌面音频,或是Windows声音设置播放选项卡那样获取响度。可能该问题已有重复,但我未找到相关内容。)

解决方案

想要实现此功能可按以下步骤操作:

  • 在Visual Studio的包管理器控制台中安装NAudio
  • 初始化默认音频输出设备:
var enumerator = new MMDeviceEnumerator();
var device = enumerator.GetDefaultAudioEndpoint(DataFlow.Render, Role.Console);
  • 在循环中实时获取响度并生成可视化输出:
var volume = device.AudioMeterInformation.MasterPeakValue;

var scale = (int)Math.Floor(volume * 100); // 可自定义缩放比例

Console.Write("\r");

var sb = new StringBuilder();
sb.Append('-', scale);
sb.Append(' ', 100 - scale); // 此处整数需与上方scale的乘数保持一致
Console.Write(sb.ToString());

效果说明

代码运行后会在控制台输出动态进度条效果:音量越高,短横线-的数量越多,空白占位符的数量越少,直观反映当前桌面音频的响度。

注意:该方案仅在**.NET 6**环境下测试验证有效

内容的提问来源于stack exchange,提问作者RvS01

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 21:30:32