【问题标题】:How do I route audio output to a selected audio endpoint/device in Windows?如何在 Windows 中将音频输出路由到选定的音频端点/设备?
【发布时间】:2021-02-26 10:37:57
【问题描述】:

TL;DR:使用 Windows UWP MediaPlayer 播放音频时,如何将音频路由到特定的音频设备/端点?

完整上下文

我正在开发一个应用程序来拨打电话。一些要求是:

  • 在不同的时间点播放音频(例如挂断电话时)
  • 允许用户将通话中的音频输出更改到不同的端点(不是问题)
  • 确保当通话中的音频路由到不同的“默认”端点时,播放的任何其他声音都路由到同一端点(这是我需要帮助的原因)

目前,当我将音频路由到不同的端点时,使用 Windows UWP MediaPlayer 播放的其他声音不会路由到相同的“新”端点。这是有道理的,因为我们不会更改应用程序范围的设置。

我的问题是:鉴于我正在使用 Windows UWP MediaPlayer 并且鉴于我可以获取设备信息吗?

【问题讨论】:

  • 以下是否有效,您是否有任何更新?

标签: windows audio uwp media-player playback


【解决方案1】:

使用 Windows UWP MediaPlayer 播放音频时,如何将音频路由到特定的音频设备/端点?

请查看Output to a specific audio endpoint 文档。 默认情况下,来自 MediaPlayer 的音频输出被路由到系统的默认音频端点,但您可以指定 MediaPlayer 应该用于输出的特定音频端点。 您可以使用GetAudioRenderSelector 获取渲染选择器,然后使用FindAllAsync 获取渲染设备并将特定设备传递给媒体播放器AudioDevice 属性。

【讨论】:

  • 不幸的是,这在我的情况下不起作用,因为通话中的音频使用 MMDevice API,而声音播放器使用 UWP MediaPlayer。我认为两者之间的设备ID不同?这意味着我必须标准化 MMDevice API 并使用 win32 API...除非我遗漏了什么。
猜你喜欢
  • 1970-01-01
  • 2013-07-30
  • 1970-01-01
  • 1970-01-01
  • 2011-03-13
  • 2020-11-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多