带有STREAM_ALARM的Android音频-插入耳机后如何使扬声器静音

时间:2019-03-08 10:23:37

标签: android android-mediaplayer android-audiomanager

我正在开发一个Android闹钟应用,并且正在使用STREAM_ALARM播放闹钟音频。当我在闹钟播放音频的过程中插入耳机时,音频开始在耳机中播放,但仍继续在扬声器中播放。 但是我想使扬声器静音,以便用户可以插入耳机并继续收听音频而不会打扰周围的任何人。这可能是不正常的行为,但这对于此特定的闹钟应用程序来说非常重要。

也许我可以使用STREAM_MUSIC,但是:

  • 文档说Unless your app is an alarm clock, you should play audio using the STREAM_MUSIC stream.
  • 如果警报开始响起并且耳机已经插入,我确实需要它通过扬声器播放STREAM_MUSIC不会这样做。可能有workarounds,但我需要100%的可靠性,因此,最好的解决方法是在需要时使扬声器静音,而不是在需要时使扬声器静音。
  • 我不确定它还会带来什么其他后果,这似乎并不安全。

那么,是否可以选择强制扬声器保持静音?可能需要一些反思?

我也在考虑将ActionHeadsetPlug上的流类型更改为STREAM_MUSIC,但是这需要停止音频,重新创建MediaPlayer实例,寻找到上一个位置,重新绑定任何事件,其他逻辑等。我的用例需要大量工作。如果可能的话,使扬声器静音绝对会更好。

0 个答案:

没有答案