如何检测手机声音是否开启?

时间:2014-04-02 06:27:44

标签: android android-mediaplayer

实际上在网络或stackoverflow上我找不到我需要的东西,也许我没有在谷歌搜索真正的关键字所以我找不到我的解决方案。 我播放声音( .mp3 ),它运行正常。 代码在这里:

try {
MediaPlayer mPlayer = MediaPlayer.create(context, R.raw.bell);
mPlayer.start();
} catch (Exception e) {
// TODO: handle exception
}   

我的问题是,当我的手机声音关闭或振动时,此代码会运行,我会听到声音。我怎么能检测到手机声音没有打开所以我可以停止播放器, 提前致谢

1 个答案:

答案 0 :(得分:2)

您可以使用AudioManager.getStreamVolume http://developer.android.com/reference/android/media/AudioManager.html#getStreamVolume%28int%29获取媒体播放器流的当前音量(请参阅STREAM_MUSIC http://developer.android.com/reference/android/media/AudioManager.html#STREAM_MUSIC),并使用AudioManager.setStreamVolume http://developer.android.com/reference/android/media/AudioManager.html#setStreamVolume%28int,%20int,%20int%29进行设置。

您可以使用AudioManager:

使用以下代码段
AudioManager am = 
    (AudioManager) getSystemService(Context.AUDIO_SERVICE);

am.setStreamVolume(
    AudioManager.STREAM_MUSIC,
    am.getStreamMaxVolume(AudioManager.STREAM_MUSIC),
    0);