mis*_*kin 18 android soundpool android-audiomanager
我感到很困惑...
SoundPool.play(int soundID,float leftVolume,float rightVolume,int priority,int loop,float rate)
这里的体积是0.0到1.0
我见过的教程建议将流量计算为:
AudioManager mgr = (AudioManager) getContext().getSystemService(Context.AUDIO_SERVICE);
int streamVolume = mgr.getStreamVolume(AudioManager.STREAM_MUSIC);
streamVolume = streamVolume / AudioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
mSoundPool.play(mSoundPoolMap.get(index), streamVolume, streamVolume, 1, 0, 1f);
Run Code Online (Sandbox Code Playgroud)
这是有道理的.
我假设此卷将覆盖用户在手机中设置的全局媒体卷,我可以通过更改soundPool中的流量来独立更改我的应用的音量.
但实际上它就像乘数一样 - 如果我在soundpool中设置0.5音量,实际音量将总是全局音量的一半.很容易重现:
有人可以解释为什么它会这样吗?传递给SoundPool.play方法的音量真的是全球音量的乘数吗?
Dar*_*ell 27
是的,音量参数与全局音量有关.如果您想以当前音量设置播放声音,只需将"1"作为音量.
| 归档时间: |
|
| 查看次数: |
10909 次 |
| 最近记录: |