Change the playback rate of a track in real time on Android

Posted by android_dev on Stack Overflow See other posts from Stack Overflow or by android_dev
Published on 2010-05-01T19:28:51Z Indexed on 2010/05/01 19:37 UTC
Read the original article Hit count: 293

Filed under:
|
|
|

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.

© Stack Overflow or respective owner

Related posts about android

Related posts about sample