将扬声器中的音频切换到耳扬声器,将扬声器切换到扬声器

时间:2019-04-12 10:47:43

标签: xamarin.forms xamarin.android

我们在Xamarin.Forms.Android项目中使用了第三方音频/视频SDK。现在的问题是,默认情况下,音频进入扬声器模式,而不是入耳式。我曾尝试在Internet上搜索解决方案,但发现以下代码可以设置耳塞和扬声器的音频。实施以下代码后,扬声器中的音频关闭但无法通过耳塞收听,如果我设置SpeakerphoneOn = true,则可以通过扬声器收听,但是如果我将SpeakerphoneOn = false设置为音频,则无法通过扬声器列出。

另外,即使更改为InCall或任何其他模式,模式值也始终为“ InCommunication”。

我在Xamarin项目中也设置了以下权限。 允许:

var audioManager = (Android.Media.AudioManager)Android.App.Application.Context.GetSystemService(Android.Content.Context.AudioService);

audioManager.SpeakerphoneOn = !audioManager.SpeakerphoneOn;

1 个答案:

答案 0 :(得分:0)

检查模式是否为扬声器,音量值是否为0。两种模式的音量分别控制。

var audioManager = (Android.Media.AudioManager)Android.App.Application.Context.GetSystemService(Android.Content.Context.AudioService);
audioManager.Mode = Mode.InCommunication;
audioManager.SpeakerphoneOn = false;
audioManager.SetStreamVolume(Stream.Music, audioManager.GetStreamMaxVolume(Stream.Music), VolumeNotificationFlags.ShowUi);