播放声音使其他应用程序静音

Playing a sound muting other applications

我想知道是否有人能指出我正确的方向。我正在为 Android 手机开发一个间歇计时器应用程序,以便在间歇训练时使用。 在特定的时间间隔,我想将其他应用程序静音(比如媒体播放器,因为我在训练时听音乐),播放自定义声音(不是任何默认通知声音),然后再次取消其他应用程序的静音。我更希望这个 mute/unmute 是渐进的,这样它在音乐中就不会是一个剧烈的 "cut"”。我读了一些书,但我无法决定最好的方法是通过 "Ringtonemanager"、"Notificationmanager" 还是直接通过媒体播放器播放? 我以前从未对声音做过任何事情,因此非常感谢您的帮助。 托马斯

如果您想将其他应用静音,您需要获得音频焦点。Managing Audio Focus

您可以通过调用以下方式使其他应用静音:

AudioManager am=context.getSystemService(Context.AUDIO_SERVICE);
int result=am.requestAudioFocus(listener,AudioManager.STREAM_MUSIC,
                  AudioManager.AUDIOFOCUS_GAIN_TRANSIENT_EXCLUSICVE);

result==AudioManager.AUDIOFOCUS_REQUEST_GRANTED 意味着您的应用程序现在拥有独占的 audiofocus 并且所有其他应用程序都应该被静音。