Моя цель - записать звук с помощью телефона, изменить скорость записи на половину исходной скорости, а затем сохранить запись с изменениями в файловую систему моего телефона. Я использую уровень API 15. Я записываю с помощью MediaRecorder, и исходный файл представляет собой файл .3gp. В моем коде это называется originalOutput. Измененный (замедленный) выходной файл также должен быть .3gp.
. С помощью этого метода я могу услышать, как звучит замедление:
public void play(View view)
{
final float playbackspeed = 0.5f;
final SoundPool soundPool = new SoundPool(4,AudioManager.STREAM_MUSIC,100);
final int soundId = soundPool.load(originalOutput,1);
AudioManager mgr = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
final float volume = mgr.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
soundPool.setOnLoadCompleteListener(new SoundPool.OnLoadCompleteListener(){
@Override
public void onLoadComplete(SoundPool arg0,int arg1,int arg2) {
soundPool.play(soundId,volume,volume,1,0,playbackspeed);
}
});
}
Но это, очевидно, не меняет оригинал файл.
Не могли бы вы помочь мне, как сохранить измененную запись в моей файловой системе?