Sawan Garg
Sawan Garg

Reputation: 99

How to change the pitch of recorded audio and save in background?

I'm recording an audio. after recording i want to change the pitch without changing frequency. and saving file on sdcard. All of this need to be done in background thread.

I've tried this link but this is changing the frequency and also this is not in background.

http://android-er.blogspot.in/2014/04/audiorecord-and-audiotrack-and-to.html

Upvotes: 2

Views: 1651

Answers (1)

rajahsekar
rajahsekar

Reputation: 914

Run a background thread and record audio using MediaRecorder below code helps to record voice call in background and it writes file into sdcard

private void startRecording() {
        filePath = getFilename();
        recorder = new MediaRecorder();
        recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
        recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
        recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
        recorder.setOutputFile(filePath);
        recorder.setOnErrorListener(errorListener);
        recorder.setOnInfoListener(infoListener);
        recorder.getMaxAmplitude();

        try {
            if (recorder != null) {
                recorder.prepare();
                recorder.start();
            }

        } catch (IllegalStateException e) {
            Log.d(LOG_TAG, e.toString());
        } catch (IOException e) {
        } catch (Exception e) {
            Log.d(LOG_TAG, e.toString());
        }
    }

    private String getFilename() {
        File filepath = Environment.getExternalStorageDirectory();
        File dir = new File(filepath.getAbsolutePath()
                + "/Android");
        if (!dir.exists()) {
            dir.mkdirs();
        }
        String uriSting = (dir.getAbsolutePath() + "/"
                + System.currentTimeMillis() + ".mp3");

        return uriSting;

    }

Upvotes: 1

Related Questions