设备在播放啥吗?
Posted
技术标签:
【中文标题】设备在播放啥吗?【英文标题】:Is device playing something?设备在播放什么吗? 【发布时间】:2012-06-30 18:32:32 【问题描述】:有没有办法知道电话是否在播放任何东西?例如铃声。
我的手机无法正常工作,有时我接到一个没有铃声的电话。我的意思是,我可以看到来电屏幕,但没有听到任何声音(当然不是静音)。它有时会发生。
所以我编写了一些程序来检测来电(接收器)并播放默认铃声。当我的手机出现故障时它工作得很好,因为我通过再次播放来强制它。
当我的手机工作时,问题就来了!因为在这种情况下,您可以同时听到这两种声音(手机和我的)并且听起来很糟糕!
所以我需要做这两件事中的一件事:
-要么检测到手机运行良好(它正在响铃),所以我不必玩任何东西。 - 或者停止任何当前的铃声(如果有)并始终自己播放。
有什么帮助吗?
P.S.:我尝试了 isMusicActive(),但它对振铃不起作用。
【问题讨论】:
类似问题,可能是骗子:How do you check if music is playing from a broadcast receiver?。正如当前答案所指出的那样,它使用AudioManager.isMusicActive()
方法。
啊,既然您已经解释了上下文,我想您可能想搜索android.stackexchange.com 并在那里发布一个问题。不是作为开发者,而是作为用户。
【参考方案1】:
您可以尝试在AudioManager 中使用isMusicActive() 方法。我很确定它会在系统范围内工作,但如果你尝试过但没有成功,请在此处发帖。
【讨论】:
可以肯定的是,通过 SDK 无法实现您想要的。AudioManager.isMusicActive()
在设备型号 Meizu MX2 上始终返回 true,即使没有播放音乐。有人遇到过这个问题吗?
如果正在播放的音频是来电者怎么办?这还算音乐吗?【参考方案2】:
This page 很好地描述了如何管理音频焦点。
您可以实现onAudioFocusedChangedListener
来不断更新正在播放的内容。
正如@raghav 指出的那样,即使isMusicActive()
方法也可能会有所帮助。
【讨论】:
以上是关于设备在播放啥吗?的主要内容,如果未能解决你的问题,请参考以下文章
即使在笔记本电脑上播放良好,Kivy 声音也无法在 Android 设备上播放