最近做了一个系统设定画面,要求根据系统音量的变化来修改设定画面view上seekbar的移动位置。
1.首先我们来研究一下如何设置音量大小:
AudioManager audioManager = (AudioManager)mContext.getSystemService(Context.AUDIO_SERVICE);
audioManager.setStreamVolume(streamType, index, flags);
2.下面我们追踪一下源码:
public void setStreamVolume(int streamType, int index, int flags) {
IAudioService service = getService();
try {
service.setStreamVolume(streamType, index, flags);
} catch (RemoteException e) {
Log.e(TAG, "Dead object in setStreamVolume", e);
}
}
3.接着我们要了解一下AudioService是如何实现该方法的:
public void setStreamVolume(int streamType, int index, int flags) {
ensureValidStreamType(streamType);