Как сохранить файл .3gp, который замедлен с SoundPool? - PullRequest
0 голосов
/ 29 марта 2020

Моя цель - записать звук с помощью телефона, изменить скорость записи на половину исходной скорости, а затем сохранить запись с изменениями в файловую систему моего телефона. Я использую уровень 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);
        }
    });
}

Но это, очевидно, не меняет оригинал файл.

Не могли бы вы помочь мне, как сохранить измененную запись в моей файловой системе?

...