将音频输出切换到扬声器
Switch audio output to speakers
我在自己的 W10 移动和桌面专用 VoIP 客户端上工作。基本功能正常。
但是我无法将音频输出到我的旧 Lumia 上的扬声器。
foreach (var item in (await DeviceInformation.FindAllAsync(DeviceClass.AudioRender)).Where(i => i.Name.Contains("Speakers")))
RendererId = item.Id;
设备列表中有 "Speakers (WaveRT)",因此 RendererId 有效。
稍后应用程序尝试使用找到的 RendererId 打开音频设备 (WSAPI)。但无论如何 phone 只播放给接收者。
我修改了 Voip 示例应用程序以尝试重现问题 - 是的,它也发生在 Voip 示例应用程序中。
我的同事证实他的 phone 也有同样的问题。
voip 应用程序是否可以通过扬声器播放音频?
谢谢!
仅在 Phone 设备上,您可以使用 AudioRoutingManager 更改音频输出。
// to get the audio manager
IsAudioRoutingSupported = ApiInformation.IsApiContractPresent(typeof(PhoneContract).FullName, 1);
if(IsAudioRoutingSupported)
{
// audio routing is supported, we register for the output change events
m_audioRoutingManager = AudioRoutingManager.GetDefault();
m_audioRoutingManager.AudioEndpointChanged += OnAudioEndpointChanged;
}
// to change to output
m_audioRoutingManager.SetAudioEndpoint(AudioRoutingEndpoint.Speakerphone);
我在自己的 W10 移动和桌面专用 VoIP 客户端上工作。基本功能正常。
但是我无法将音频输出到我的旧 Lumia 上的扬声器。
foreach (var item in (await DeviceInformation.FindAllAsync(DeviceClass.AudioRender)).Where(i => i.Name.Contains("Speakers")))
RendererId = item.Id;
设备列表中有 "Speakers (WaveRT)",因此 RendererId 有效。
稍后应用程序尝试使用找到的 RendererId 打开音频设备 (WSAPI)。但无论如何 phone 只播放给接收者。
我修改了 Voip 示例应用程序以尝试重现问题 - 是的,它也发生在 Voip 示例应用程序中。
我的同事证实他的 phone 也有同样的问题。
voip 应用程序是否可以通过扬声器播放音频?
谢谢!
仅在 Phone 设备上,您可以使用 AudioRoutingManager 更改音频输出。
// to get the audio manager
IsAudioRoutingSupported = ApiInformation.IsApiContractPresent(typeof(PhoneContract).FullName, 1);
if(IsAudioRoutingSupported)
{
// audio routing is supported, we register for the output change events
m_audioRoutingManager = AudioRoutingManager.GetDefault();
m_audioRoutingManager.AudioEndpointChanged += OnAudioEndpointChanged;
}
// to change to output
m_audioRoutingManager.SetAudioEndpoint(AudioRoutingEndpoint.Speakerphone);