如何检测其他应用程序的音频是不是在后台播放? (UWP,Windows 10)
Posted
技术标签:
【中文标题】如何检测其他应用程序的音频是不是在后台播放? (UWP,Windows 10)【英文标题】:How to detect if another application's audio is playing in background? (UWP, Windows 10)如何检测其他应用程序的音频是否在后台播放? (UWP,Windows 10) 【发布时间】:2018-05-04 20:11:49 【问题描述】:我正在编写一个 C# SDK(供 UWP Publishers 使用)并且想检测是否有其他应用程序(Pandora、Spotify、Amazon Music 等)在后台播放音乐,以便我可以将我的 SDK 静音声音。
This comment to this question 似乎表明我可以使用 BackgroundMediaPlayer.IsMediaPlaying(),但是当我在网络浏览器或亚马逊音乐应用程序中播放 Pandora 时,当音乐在另一个应用程序中播放时,此方法似乎总是返回 false。
This answer to this question 似乎表明我们曾经能够使用 Microsoft.Xna.Framework.Media.MediaPlayer.State 来检测另一个应用程序是否正在播放背景音乐,但我不相信这个调用在UWP(如果我错了请告诉我——我主要关心这个在桌面和 XBox One 上的工作)。
所以我的问题是,我如何确定另一个应用程序(在桌面、网络浏览器或 Windows 手机上)是否正在播放音乐?
【问题讨论】:
【参考方案1】:我相信BackgroundMediaPlayer.IsMediaPlaying
仅检测到来自 WinRT/UWP 应用而不是 Win32 应用的音频播放。此 API 对于移动应用程序很重要,因为在任何给定时间,您只能拥有一个带有背景音频的应用程序。我认为目前没有办法为 Win32 应用程序检测到这一点。
【讨论】:
【参考方案2】:BackgroundMediaPlayer.IsMediaPlaying
方法现已过时。我注意到如果在 UWP 中播放背景音乐,对 Microsoft.Xna.Framework.Media.MediaPlayer.Play
的调用会成功,但实际上不会播放任何音乐,因此在某些情况下似乎不需要检查。
【讨论】:
以上是关于如何检测其他应用程序的音频是不是在后台播放? (UWP,Windows 10)的主要内容,如果未能解决你的问题,请参考以下文章
如何检测音频当前是不是正在 Android 手机扬声器上播放?