Tôi đã thử với lớp AudioRoutingManager ... nhưng tôi đã có ngoại lệ không hợp lệ. đây là mã của tôicách phát âm thanh qua tai nghe chỉ trong cửa sổ điện thoại 8 ứng dụng
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());
}
Thật không may, chúng tôi h quảng cáo đã thử điều này, thêm nó vào WMAppManifest.xml: . Tuy nhiên, lỗi sau được ném: Lỗi 14 Thuộc tính 'Tên' không hợp lệ - Giá trị 'ID_CAP_AUDIOROUTING' không hợp lệ theo kiểu dữ liệu 'Chuỗi' - Ràng buộc liệt kê không thành công. –
Điều đó hơi khó hiểu. Khả năng cho người quản lý cụ thể này thực sự là ID_CAP_VOIP. Sử dụng mã của bạn, bạn sẽ không nhận được ngoại lệ trên AudioRoutingManager. Nhưng tôi nghĩ bạn vẫn sẽ ở trên SetAudioEndPoint trừ khi cuộc gọi đang diễn ra. –
Tôi có cùng quan điểm. Từ tất cả các ví dụ MS, thiết lập điểm cuối chỉ có sẵn trong khi đang thực hiện cuộc gọi VOIP. Điều này sẽ phù hợp với hệ điều hành, nơi một cuộc gọi chỉ có thể được thay đổi thành loa sau khi nó được bắt đầu. –