使用录音机录制音频,然后将其上传到服务器 android

Record audio using recorder and then upload that on server android

我正在尝试在我的应用程序中录制音频 在按钮上按下

    Intent intent = new Intent(MediaStore.Audio.Media.RECORD_SOUND_ACTION); 
    startActivityForResult(intent, ACTIVITY_RECORD_SOUND);

但它给我错误

    android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.provider.MediaStore.RECORD_SOUND }

但是当我从 Play 商店安装任何录音机时,这个错误就消失了,但是在录制音频之后它没有 return 任何东西。它留在录音机上 window .

还有我必须写些什么来获取音频文件并将其上传到服务器

        @Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {

}

But it is giving me error

Android 设备不需要具有响应 Intent 操作的 activity。

when i install any sound recorder from play store this error is gone but after recording the audio it does not return anything . It stay on the recorder window .

那个应用程序显然有一个错误。

also what i have to write to get that audio file and upload it to the server

引用the documentation for RECORD_SOUND_ACTION,输出为"An uri to the recorded sound stored in the Media Library if the recording was successful"。 IOW,在传送到 onActivityResult()Intent 上调用 getData(),这应该是指向录制音频的 Uri。请注意,这不一定代表文件系统上的文件,更不用说您可以访问的文件了。

您可以使用下面的代码。

MediaRecorder recorder = new MediaRecorder();
        recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
        recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
        recorder.setOutputFile(path);
//            recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);         for mp3 audio
        recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
recorder.prepare();
recorder.start();

路径可以是文件 exists.for 中的任何内容,例如

path = Environment.getExternalStorageDirectory() + "/Android/data/" + context.getApplicationContext().getPackageName() + "/files/" + "myrecording.m4a";