Soundpool 音量不变
Posted
技术标签:
【中文标题】Soundpool 音量不变【英文标题】:Soundpool volume not changing 【发布时间】:2017-04-29 07:28:34 【问题描述】:我有 8 种不同的 Soundpool 噪音,都有自己的搜索栏来控制音量。我有日志显示搜索栏的数字正在按应有的方式变化,但音量在 90% 的时间里都没有变化(奇怪的是它偶尔会起作用)。
这是 onCreate 中设置音量的代码 -
dryerVolumeControl.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener()
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser)
double dryerVol = (double) progress / (double) maxVolume;
Log.i("Dryer Volume", String.valueOf(dryerId) + " " + String.valueOf((float) dryerVol));
mySound.setVolume(dryerId, (float) dryerVol, (float) dryerVol);
@Override
public void onStartTrackingTouch(SeekBar seekBar)
@Override
public void onStopTrackingTouch(SeekBar seekBar)
Log.i("Dryer Volume", "On stop touching");
mySound.setVolume(dryerId, (float) dryerVol, (float) dryerVol);
);
我添加了 onStop 代码,因为它可能会起作用。烘干机的id和volume好像都可以,为什么volume不变呢?
如果您需要查看其他内容,请告诉我。 (我可以链接到 github 以便有人可以检查所有代码吗?这“安全”吗?)
【问题讨论】:
请提供github链接,我将不胜感激。我也在做这样的事情,需要完整的代码.. 【参考方案1】:使用此代码启动烘干机-
dryerStreaming = mySound.play(dryerId, (float) dryerVol, (float) dryerVol, 1, -1, 1);
然后我应该用 - 控制音量
mySound.setVolume(dryerStreaming, (float) dryerVol, (float) dryerVol);
【讨论】:
以上是关于Soundpool 音量不变的主要内容,如果未能解决你的问题,请参考以下文章
SoundPool 中的流音量与 AudioManager 中的音量