设置MediaPlayer的音量的方法一般是用AudioManager的setStreamVolume来设置音量,但如果有两个声音,比如设置了背景音乐,调节系统音量则,当前程序音量和背景音乐的声音会同时调节,如果只要调节当前程序的音量就要使用MediaPlayer的setVolume方法。
setVolume有两个参数,我还没搞懂这两个参数有什么区别(左右声道?),我是都设一样,参数的区间是0.0f到1.0f,如果设置超过1.0f,他还是1.0f, MediaPlayer没有像AudioManager有可以获取最大音量的方法,AudioManager的mAudioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC), setVolume的最大音量就是当前系统音量,可以通过调节系统音量来改变MediaPlayer的最大音量。
setVolume方法要在setDataSource(filePath),prepareAsync()方法之后调用,否则无效。
如:
mVideoPlayer = new MediaPlayer();
mVideoPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mVideoPlayer.setDataSource(filePath);
mVideoPlayer.prepareAsync();
mVideoPlayer.setVolume(0.5f, 0.5f);
mVideoPlayer.start();