检测 Android 上播放的背景音频

Detect background audio playing on Android

我在 iOS 和 Android 上都有一个 Xamarin.Forms 应用程序 运行 目前我发现在我的应用程序中播放声音时已经有背景音频的问题玩。 iOS 很容易通过检测 AVAudioSession.SharedInstance().OtherAudioPlaying.

的存在来解决

我对是否可以检测是否有任何东西已经在 Android 上播放音频感到困惑。我似乎能够发现如何在后台播放音频,但没有关于如何检查是否存在现有音频播放的信息。目前背景音频和我的声音一起播放,这会留下相当不愉快的体验。

事实证明它与 iOS 方法一样简单,只要您知道正确的查找位置 :)。感谢评论者,我发现 IsMusicActiveAndroid.Media.AudioManager class 上可用。因此我的解决方案看起来像:

public class AudioHelper : IAudioHelper
{
    public static void Init(Activity activity)
    {
        audioManager = (Android.Media.AudioManager)activity.GetSystemService(Activity.AudioService);
    }

    private static Android.Media.AudioManager audioManager;

    public bool IsOtherAudioPlaying => audioManager?.IsMusicActive == true;
}