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){ } 

  • Android安装apk与Intent.VIEW_ACTION不能使用文件提供程序
  • 相机的surfaceview不工作在android棒棒糖的操作系统
  • 有一个活动的例子
  • 如何在android中以编程方式导入多个.vcf文件?
  • “传递结果失败” - onActivityForResult
  • 在Activity.onCreate()中,为什么Intent.getExtras()有时返回null?
  • 删除活动作为默认启动器
  • Android:从片段调用活动
  • 有一个如何在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的单词/短语。