我嘗試過使用AudioRoutingManager類...但我有未經授權的訪問異常。 這裏是我的代碼如何通過耳機僅在Windows Phone 8應用程序中播放音頻
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());
}
不幸的是我們^ h ad試過了,將它添加到WMAppManifest.xml中:。但是,會引發以下錯誤: 錯誤14'名稱'屬性無效 - 'ID_CAP_AUDIOROUTING'值根據其數據類型'字符串'無效 - 枚舉約束失敗。 –
那是一個有點混亂。這個特定管理器的功能實際上是ID_CAP_VOIP。使用你的代碼,你不會在AudioRoutingManager上發生異常。但是我認爲除非正在進行呼叫,否則您仍然會在SetAudioEndPoint上。 –
我有同樣的看法。從所有MS示例中,設置端點僅在VOIP呼叫正在進行時可用。這與操作系統一致,在操作系統中,呼叫只能在啓動後更改爲揚聲器。 –