Windows phone 8 如何仅在windows phone 8应用程序中通过耳机播放音频
我尝试过AudioRoutingManager类…但我遇到了未经授权的访问异常。 这是我的密码Windows phone 8 如何仅在windows phone 8应用程序中通过耳机播放音频,windows-phone-8,windows-phone-voip,Windows Phone 8,Windows Phone Voip,我尝试过AudioRoutingManager类…但我遇到了未经授权的访问异常。 这是我的密码 AudioRoutingManager audioRouting = AudioRoutingManager.GetDefault(); public AudioRoutingEndpoint ChangeAudioRoute() { var currentEndPoint= audioRouting.GetAudioEndpoint(); switch
AudioRoutingManager audioRouting = AudioRoutingManager.GetDefault();
public AudioRoutingEndpoint ChangeAudioRoute()
{
var currentEndPoint= audioRouting.GetAudioEndpoint();
switch (currentEndPoint)
{
case AudioRoutingEndpoint.Earpiece:
case AudioRoutingEndpoint.Default:
return AudioRoutingEndpoint.Speakerphone;
case AudioRoutingEndpoint.Speakerphone:
return AudioRoutingEndpoint.Earpiece;
default:
throw new OperationCanceledException();
}
}
public void SetAudioRoute()
{
audioRouting.SetAudioEndpoint(this.ChangeAudioRoute());
}
Windows.Phone.Media.Devices命名空间中的API需要ID\u CAP\u音频路由和ID\u CAP\u VOIP功能。(将此添加到您的舱单中) 此外,只有在活动VOIP呼叫中才能更改音频路由
此外,您需要在后台VOIP过程中进行音频路由,而不是在前台过程中。旧问题,但现在我知道了答案 您需要做两件事:
<?xml version="1.0" encoding="utf-8"?>
<WindowsPhoneReservedAppInfo xmlns="http://schemas.microsoft.com/phone/2013/windowsphonereservedappinfo">
<SoftwareCapabilities>
<SoftwareCapability Id="ID_CAP_VOIP" />
</SoftwareCapabilities>
</WindowsPhoneReservedAppInfo>
不幸的是,我们尝试了此操作,将其添加到WMAppManifest.xml:。但是,引发了以下错误:错误14“Name”属性无效-值“ID\u CAP\u AUDIOROUTING”根据其数据类型“String”无效-枚举约束失败。这有点混乱。这个特定管理器的功能实际上是ID_CAP_VOIP。使用您的代码,AudioRoutingManager不会出现异常。但我想你还是会在SetAudioEndPoint上,除非有电话在进行中。我也这么认为。在所有MS示例中,设置端点仅在VOIP呼叫进行时可用。这与操作系统是一致的,在操作系统中,呼叫只有在启动后才能更改为扬声器。嘿,请确认,您只能在(VOIP)呼叫中更改音频路由。(我在Windows Phone上为Microsoft/Skype工作)。我已经更新了你的答案。用另一个便条更新了。路由需要在后台进程中完成。