android 音量调节不起作用,Android音量控制

本文详细介绍了Android中音量的调节,包括音量步进值、音量范围以及如何通过AudioManager进行渐进式和自定义幅度调节。同时,讲解了如何监听音量按键,并提供了一个封装的AudioMngHelper类,方便开发者进行音量控制。
摘要由CSDN通过智能技术生成

0. Thanks To

1. 音量调节

我们知道,在平常调节音量的时候,是有一定的调节数值,

也就是,每按一次音量+/-,音量的增加/减小幅度,这个我们称为:系统的音量步进值。

而,音量还有一定的范围,系统的是:0到Max,Max不确定,这个称为:系统的音量范围。

在Android中,是有几种类型的音量可以调节:

STREAM_ALARM 警报

STREAM_MUSIC 音乐回放即媒体音量

STREAM_RING 铃声

STREAM_SYSTEM 系统

STREAM_VOICE_CALL 通话

Android中的所有音量都是通过:AudioManager 去管理的,也是通过它去调节:

//获取系统的Audio管理者

AudioManager mAudioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);

//最大音量

int maxVolume = mAudioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);

//当前音量

int currentVolume = mAudioManager.getStreamVolume(AudioManager.STREAM_MUSIC);

而,日常的项目中,有两种的调节方式:

1.渐进式,即像手动按音量键一样,一步一步增加或减少:

通过AudioManager的adjustStreamVolume方法

public void adjustStreamVolume (int streamType, int direction, int flags)

参数说明:

int streamType 需要调整的音量类型

(以下常量定义于AudioManager类中)

STREAM_ALARM 警报

STREAM_MUSIC 音乐回放即媒体音量

STREAM_NOTIFICATION 窗口顶部状态栏Notification,

STREAM_RING 铃声

STREAM_SYSTEM 系统

STREAM_VOICE_CALL 通话

STREAM_DTMF 双音多频,不是很明白什么东西

int direction 调整的方向,加或者减。

(以下常量定义于AudioManager类中)

ADJUST_LOWER 降低音量

ADJUST_RAISE 升高音量

ADJUST_SAME 保持不变,这个主要用于向用户展示当前的音量

int flags 附加的一些参数

参数的说明参考API文档:http://www.android-doc.com/reference/android/media/AudioManager.html

FLAG_PLAY_SOUND 调整音量时播放声音

FLAG_SHOW_UI 调整时显示音量条,就是按音量键出现的那个

0表示什么也没有

2.直接自定义调节的幅度(步进值),直接调节音量大小。

public void setStreamVolume (int streamType, int index, int flags)

参数说明:

第一个,第三个和上面的一样

第二个参数:

int index: 把音量调整到index值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值