如何在Android应用中录制声音

时间:2014-07-09 08:41:36

标签: android audio audio-recording

我正在开发一个Android应用程序,这个应用程序的一部分是一个简单的木琴,我必须做的是一个功能的实现,当用户按下按钮时记录木琴声。

当用户按下按钮时,如do,re mi等,使用保存在原始文件夹中的mp3播放声音...

1)这可能吗? 2)有人可以解释我如何“捕获”声音并将其记录在SD卡中吗? 3)是否可以实现“记录”“播放”“停止”“重现”功能?

4 个答案:

答案 0 :(得分:3)

  

您可以使用以下代码录制音频:

private void startRecording() {
        mRecorder = new MediaRecorder();
        mRecorder.setAudioSource(MediaRecorder.AudioSource.CAMCORDER);
        mRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
        mRecorder.setOutputFile(mFileName);
        mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);

        try {
            mRecorder.prepare();
        } catch (IOException e) {
            Log.e(LOG_TAG, "prepare() failed");
        }

        mRecorder.start();
    }
  

我正在搜索如何使用耳机录制音频,而不是来自   发言者请在评论中分享链接如果有人对此有所了解。

答案 1 :(得分:1)

是的,您可以在sd中捕获和存储音频,然后再播放它。看看这些链接。

http://developer.android.com/reference/android/media/MediaRecorder.html

http://www.tutorialspoint.com/android/android_audio_capture.htm

答案 2 :(得分:1)

如果没有root,Android就无法在内部(或者说“数字化”)记录扬声器或耳机的内容。原因可能是版权问题,因此无法生成通过Android设备播放内容的数字副本。

当然,如果信号足够大,您可以使用内置麦克风录制,但质量损失很大。此外,您还会在木琴上发出背景噪音和用户指尖的敲击声。

最佳解决方案是以编程方式混合与键对应的样本,并将结果发送到扬声器,同时发送到声音文件中。复杂但最佳。

答案 3 :(得分:0)

MediaRecorder recorder = new MediaRecorder();
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
recorder.setOutputFile(PATH_NAME);
recorder.prepare();
recorder.start(); // Recording is now started
...
recorder.stop();
recorder.reset(); // You can reuse the object by going back to setAudioSource() step
recorder.release(); // Now the object cannot be reused