如何更改录制音频的音高并保存在后台?

时间:2014-10-06 10:19:52

标签: android

我正在录制音频。录制后我想改变音高而不改变频率。 并在SD卡上保存文件。所有这些都需要在后台线程中完成。

我已尝试过此链接,但这会改变频率,而且这不在后台。

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

1 个答案:

答案 0 :(得分:0)

使用MediaRecorder运行后台线程并录制音频代码有助于在后台录制语音呼叫并将文件写入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;

    }