使用 C# 在 Windows 10 上控制左右扬声器平衡级别
Posted
技术标签:
【中文标题】使用 C# 在 Windows 10 上控制左右扬声器平衡级别【英文标题】:Control left & right speaker balance level on Windows 10 using C# 【发布时间】:2018-10-01 10:33:07 【问题描述】:我需要使用我的 C# 应用程序控制 Windows 10 上的左右扬声器平衡级别。
我能够使用 Windows IAudioEndpointVolume interface 通过 Audio Manager C# wrapper 控制扬声器和麦克风的主音量级别,http://***.com/questions/14306048/controling-volume-mixer 中也提到了这一点。
但是,我仍然无法控制 L/R 平衡。我应该使用任何特定的接口或属性吗?
windows-audio-speaker-balance settings
我正在通过 Visual Studio 15 使用 Windows 10 SDK 和 .NET 4.6.1 框架构建控制台应用程序
【问题讨论】:
【参考方案1】:使用 IAudioEndpointVolume 中的 SetChannelVolumeLevel(或 SetChannelVolumeLevelScalar)方法。
SetChannelVolumeLevel:https://docs.microsoft.com/en-us/windows/desktop/api/endpointvolume/nf-endpointvolume-iaudioendpointvolume-setchannelvolumelevel
SetChannelVolumeLevelScalar:https://docs.microsoft.com/en-us/windows/desktop/api/endpointvolume/nf-endpointvolume-iaudioendpointvolume-setchannelvolumelevelscalar
【讨论】:
谢谢@Wokuo。我在发布之前已经尝试过这个端点,但是我给LPCGUID pguidEventContext
提供了错误的值。它在为 EventContext 传递 Guid.Empty 后工作。另外,通道 0 表示左 1 右
@DhammikaMarasinghe 这个解决方案可行,但有点难看。更好的解决方案是使用静态 Guid。此指南用于识别谁更改了音量,特别是您可以定义音量是由您的应用程序还是由系统设置更改。您可以在这里找到更多详细信息:docs.microsoft.com/pl-pl/windows/desktop/api/endpointvolume/…以上是关于使用 C# 在 Windows 10 上控制左右扬声器平衡级别的主要内容,如果未能解决你的问题,请参考以下文章
如何从 C# Windows 应用程序控制 Windows 10 移动热点设置 [重复]