如何检测音量是不是设置为静音?

Posted

技术标签:

【中文标题】如何检测音量是不是设置为静音?【英文标题】:How can I detect if the volume is set to mute?如何检测音量是否设置为静音? 【发布时间】:2013-02-24 07:19:32 【问题描述】:

在开发安卓应用时,如何检测音量是否设置为静音?

如果音量变为静音或取消静音,我的应用程序如何获得通知?

【问题讨论】:

【参考方案1】:

您可以使用 AudioManager 来检查音量是否静音。

AudioManager audio = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
switch( audio.getRingerMode() )
case AudioManager.RINGER_MODE_NORMAL:
   break;
case AudioManager.RINGER_MODE_SILENT:
   break;
case AudioManager.RINGER_MODE_VIBRATE:
   break;

对于音量变化,有 BroadcastReceiver 。

public class VolumeKeyReceiver extends BroadcastReceiver 
    @Override
    public void onReceive(Context context, Intent intent) 
       //Implement Logic
    

注册广播接收器

VolumeKeyReceiver keyReceiver = new VolumeKeyReceiver();
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction("android.media.VOLUME_CHANGED_ACTION");
registerReceiver(keyReceiver, intentFilter);

【讨论】:

以上是关于如何检测音量是不是设置为静音?的主要内容,如果未能解决你的问题,请参考以下文章

在 Media Foundation 中检测音量或静音

如何在iOS上获得音量级别和音量更改通知?

检查系统音量是不是静音

OSX CoreAudio 麦克风输入静音与将音量设置为 0.0f

音频自动增益 与 静音检测 算法 附完整C代码

iPhone:如何使用 AVAudioPlayer 检测 Iphone/Ipod 音量级别