如何让 Windows 检测我的应用程序的通信活动?

问题描述 投票:0回答:1

Windows 中有一个设置可以在应用程序拨打或接听电话时调节其他应用程序的音量:

Windows 通信声音设置 UI 的图像

如果我正在编写一个可以拨打/接听电话的应用程序,我如何确保 Windows 检测到这一点并根据此设置降低其他应用程序的音量?是否有我需要调用的 API?创建音频流的某种特殊方法?

我浏览了一些 WASAPI 和 Core Audio API 文档,但没有成功。 WASAPI 有独占模式流,但这些似乎比我在这里要的要强一点,因为它们会将所有其他音频静音。

windows audio
1个回答
0
投票
  • IMMDeviceEnumerator::GetDefaultAudioEndpoint
    请求
    eCommunications
    角色将为您提供默认通信设备,您可以调用
    Activate
    来创建
    IAudioClient
    。有关将数据推送到此流的更多详细信息,请参阅 MSDN 上的渲染示例。微软开发人员在here的评论中推荐了这种方法。

  • 如果您已经有一个音频客户端实例传递给您,您可以调用

    IAudioClient2::SetClientProperties

  • IAudioClientDuckingControl::SetDuckingOptionsForCurrentStream
    允许您根据需要关闭音频闪避,同时仍被归类为通信流。

© www.soinside.com 2019 - 2024. All rights reserved.