Android:录音和保存audio

我正在开发一个应用程序来logging用户的声音,并将文件保存在SD卡上,然后让用户再次听audio。

我能够让用户使用RecognizerIntent录制他的声音,但我不知道如何保存audio文件,并允许用户听到的audio。 如果有人能帮助我,我将不胜感激。 我已经在下面显示了我的代码:

// Setting up the onClickListener for Audio Button attachVoice = (Button) findViewById(R.id.AttachVoice_questionandanswer); attachVoice.setOnClickListener(new OnClickListener() { public void onClick(View v) { Intent voiceIntent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH); voiceIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM); voiceIntent.putExtra(RecognizerIntent.EXTRA_PROMPT, "Please Speak"); startActivityForResult(voiceIntent, VOICE_REQUEST); } }); protected void onActivityResult(int requestCode, int resultCode, Intent data) { if(requestCode == VOICE_REQUEST && resultCode == RESULT_OK){ } 

Solutions Collecting From Web of "Android:录音和保存audio"

有一个如何在Android开发者文档中使用MediaRecorder进行audio捕获的例子。

我build议将文件保存在SD卡上,然后让您的图库代码检查SD卡以查看要显示的文件。 您可以使用Environment.getExternalStorageDirectory()方法获取SD卡的目录。 最好将文件保存在SD卡根目录的子目录中。

确保你给你的应用程序所需的权限 。 至less它需要RECORD_AUDIO和WRITE_EXTERNAL_STORAGE 。

你也必须看到这些教程:

http://www.androiddevblog.net/android/android-audio-recording-part-1

http://www.androiddevblog.net/android/android-audio-recording-part-2

如果你真的想通过语音识别API录制audio,那么你可以使用具有方法的RecognitionService.Callback

 void bufferReceived(byte[] buffer) 

当您正在录制和识别语音时,您可以访问录制的audio缓冲区。 (虽然没有提供有关采样率的信息)。然后,您可以将获取的缓冲区保存到文件中以供以后播放。 我认为键盘应用程序使用这个调用来显示录制的语音的波形。 你必须自己实现UI。

裸露的RecognizerIntent.ACTION_RECOGNIZE_SPEECH只是返回一组没有任何audio的单词/短语。