Android 使用声音池加速声音
是否可以使Soundpool以更快的速度播放声音,例如,播放速度快50%Android 使用声音池加速声音,android,soundpool,Android,Soundpool,是否可以使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.
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;
}
}
play()
的最后一个参数控制播放速率
看
参数
soundID:load()函数返回的soundID
leftVolume:左音量值(范围=0.0到1.0)
右音量:右音量值(范围=0.0到1.0)
优先级:流优先级(0=最低优先级)
循环:循环模式(0=无循环,-1=永远循环)
速率:播放速率(1.0=正常播放,范围0.5到2.0)
请注意,您只能将速度从0.5更改为2.0,即速度的一半到两倍。任何超过此值的操作都必须使用自定义实现。播放速率允许应用程序改变声音的播放速率(音调)。值为1.0表示以原始频率播放。值2.0表示播放速度加倍,值0.5表示播放速度减半。 看 所以您需要更改
soundPool.play(我的声音,20,20,1,0,1f)代码>
到
soundPool.play(我的声音,20,20,1,0,2f)代码>
值2将根据需要将速度提高50%我将浮点值更改为更高的值-是,它会加快速度,但声音文件似乎失真。女人的声音变为孩子的声音。@user2365568当你加快声音时,就会发生这种情况。。这是正常的事情。。。当你放慢速度时,声音就会变得沉重