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

Posted

技术标签:

【中文标题】如何更改录制音频的音高并在后台保存?【英文标题】:How to change the pitch of recorded audio and save in background? 【发布时间】:2014-10-06 10:19:52 【问题描述】:

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

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

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

【问题讨论】:

【参考方案1】:

运行后台线程并使用 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;

    

【讨论】:

查看此链接***.com/questions/5156192/…

以上是关于如何更改录制音频的音高并在后台保存?的主要内容,如果未能解决你的问题,请参考以下文章

在 iOS 上实时录制、修改音高和回放音频

如何录制音频并将其保存到沙盒?

在单独的线程中录制音频并估计音高

如何录制/保存 iPhone 应用程序中正在播放的音频?

MATLAB - 音高转换音频信号

如何在 iPhone 上使用音频单元