我是否应该将音量 onResume 静音并使用 AudioManager 将音量设置回 onPause?
还是有另一种正确的方法来做到这一点?
谢谢!
我认为您的答案在于setStreamMute()
.
静音命令可防止客户端进程死亡:如果在流上具有活动静音请求的进程死亡,则该流将自动取消静音。
给定流的静音请求是累积的:AudioManager 可以从一个或多个客户端接收多个静音请求,并且只有在接收到相同数量的取消静音请求时才会取消静音。
为了更好的用户体验,应用程序必须在 onPause() 中取消静音流,并且如果合适,在 onResume() 中再次静音。
如果有人感兴趣,有一种解决方法可以避免您的应用程序将所有内容静音。执行以下操作将使音量键静音,并且通知来电将保持系统中的配置(而不是强制静音)。
setVolumeControlStream(AudioManager.STREAM_DTMF);
AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
audioManager.setStreamMute(AudioManager.STREAM_DTMF, true);