设备在播放啥吗?

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() 方法也可能会有所帮助。

【讨论】:

以上是关于设备在播放啥吗?的主要内容,如果未能解决你的问题,请参考以下文章

音频设备测试无法播放声音

为啥苹果设备在自己的播放器中播放 html5 视频?

即使在笔记本电脑上播放良好,Kivy 声音也无法在 Android 设备上播放

如何同时在多个设备中播放声音

在旋转具有不同方向布局的设备时继续播放 YouTube 播放器

视频不在设备上播放,但在播放 ov 模拟器