我工作的应用程序,它会记录用户的声音,并保存在SD卡上的文件,然后允许用户再次收听音频。
我能够允许用户记录使用RecognizerIntent他的声音,但我不能弄清楚如何保存音频文件,并允许用户收听音频。我将不胜感激,如果有人可以帮助我。我已经在下面显示我的代码:
// 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 Developer Documentation.使用MediaRecorder做音频捕捉的例子
我会建议节省的SD卡中的文件,然后让库的代码检查SD卡来查看哪些文件来显示。你可以使用Environment.getExternalStorageDirectory()方法SD卡的目录。这将是最好保存在SD卡根目录下的子目录文件。
请确保你给你的应用程序的Permissions它将需要。至少,它需要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音频,那么你可以使用它有一个方法的RecognitionService.Callback
void bufferReceived(byte[] buffer)
这使您可以访问录制的音频缓冲语音被记录和认可。 (没有信息虽然提供了有关采样率。)然后,您可以保存所获得的缓冲区到文件的稍后回放。我觉得键盘的应用程序使用此电话时显示记录的语音波形。你必须自己实现UI。
裸RecognizerIntent.ACTION_RECOGNIZE_SPEECH
刚刚返回一组词/短语没有任何音讯。