检测 Android 上播放的背景音频
Detect background audio playing on Android
我在 iOS 和 Android 上都有一个 Xamarin.Forms
应用程序 运行 目前我发现在我的应用程序中播放声音时已经有背景音频的问题玩。 iOS 很容易通过检测 AVAudioSession.SharedInstance().OtherAudioPlaying
.
的存在来解决
我对是否可以检测是否有任何东西已经在 Android 上播放音频感到困惑。我似乎能够发现如何在后台播放音频,但没有关于如何检查是否存在现有音频播放的信息。目前背景音频和我的声音一起播放,这会留下相当不愉快的体验。
事实证明它与 iOS 方法一样简单,只要您知道正确的查找位置 :)。感谢评论者,我发现 IsMusicActive
在 Android.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;
}
我在 iOS 和 Android 上都有一个 Xamarin.Forms
应用程序 运行 目前我发现在我的应用程序中播放声音时已经有背景音频的问题玩。 iOS 很容易通过检测 AVAudioSession.SharedInstance().OtherAudioPlaying
.
我对是否可以检测是否有任何东西已经在 Android 上播放音频感到困惑。我似乎能够发现如何在后台播放音频,但没有关于如何检查是否存在现有音频播放的信息。目前背景音频和我的声音一起播放,这会留下相当不愉快的体验。
事实证明它与 iOS 方法一样简单,只要您知道正确的查找位置 :)。感谢评论者,我发现 IsMusicActive
在 Android.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;
}