是否有可能让Soundpool以更快的速度播放声音,例如播放速度提高50%?
private void loadSound(int position, int group_position) {
switch (position) {
case 0:
myVoice = soundPool.load(PhraseActivity.wr.get(), sound[group_position][0], 2);
soundPool.setOnLoadCompleteListener(new OnLoadCompleteListener() {
@Override
public void onLoadComplete(SoundPool soundPool, int sampleId,
int status) {
soundPool.play(myVoice, 20, 20, 1, 0, 1f);
}
});
break;
case 1:
myVoice = soundPool.load(PhraseActivity.wr.get(), sound[group_position][1], 2);
soundPool.setOnLoadCompleteListener(new OnLoadCompleteListener() {
@Override
public void onLoadComplete(SoundPool soundPool, int sampleId,
int status) {
soundPool.play(myVoice, 20, 20, 1, 0, 1f);
}
});
break;
}
}
答案 0 :(得分:2)
播放速率允许应用程序改变声音的播放速率(音高)。值1.0表示以原始频率播放。值2.0表示播放速度的两倍,值0.5表示以半速播放。 见Doc
所以你需要改变
soundPool.play(myVoice, 20, 20, 1, 0, 1f);
到
soundPool.play(myVoice, 20, 20, 1, 0, 2f);
值2将使速度提高到50%,如你所愿
答案 1 :(得分:0)
play()
的最后一个参数控制播放速度。
请参阅the docs。
<强>参数强>
soundID:load()函数返回的soundID
leftVolume:左侧音量值(范围= 0.0到1.0)
rightVolume:正确的音量值(范围= 0.0到1.0)
优先级:流优先级(0 =最低优先级)
循环:循环模式(0 =无循环,-1 =永远循环)
评分:播放率(1.0 =正常播放,范围0.5到2.0)
请注意,您只能将速度从0.5更改为2.0,这意味着速度的一半到两倍。过去的任何事情,你都必须提出自定义实现。