I am developing a player app and I am using MediaPlayer for that.
Now, I want to change the speed of the playing track.
I\'ve seen so many apps with this fu
The MediaPlayer does not provide this feature but SoundPool has this functionality.
The SoundPool class has a method called setRate (int streamID, float rate)
. If you are interested in the API have a look here.
This Snippet will work.
float playbackSpeed=1.5f;
SoundPool soundPool = new SoundPool(4, AudioManager.STREAM_MUSIC, 100);
soundId = soundPool.load(Environment.getExternalStorageDirectory()
+ "/sample.3gp", 1);
AudioManager mgr = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
final float volume = mgr.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
soundPool.setOnLoadCompleteListener(new OnLoadCompleteListener()
{
@Override
public void onLoadComplete(SoundPool arg0, int arg1, int arg2)
{
soundPool.play(soundId, volume, volume, 1, 0, playbackSpeed);
}
});