Change the playback rate of a track in real time on Android
- by android_dev
Hello,
I would like to know if somebody knows a library to changing the playback rate of a track in real time. My idea is to load a track and change its playback rate to half or double. Firstly, I tried with MusicPlayer but is was not possible at all and then I tried with SoundPool. The problem is that with SoundPool I can´t change the rate once the track is loaded. Here is the code I am using (proof of concept):
float j = 1;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button b = (Button)findViewById(R.id.Button01);
b.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
j = (float) (j +.5);
}
});
AssetFileDescriptor afd;
try {
SoundPool sp = new SoundPool(1, AudioManager.STREAM_MUSIC, 0);
afd = getAssets().openFd("wav/sample.wav");
int id = sp.load(afd, 1);
sp.play(id, 1, 1, 1, 0, j);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
When I press the button, the playback rate should increase but it does not happen. Any idea of how change the rate in real time?
Thanks in advance.