使用录音机录制音频,然后将其上传到服务器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商店安装任何录音机时,此错误消失了,但是录制音频后它不会返回任何内容。它停留在记录器窗口上。

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

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

您可以使用以下代码。

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();

和路径可以是文件存在的任何内容。

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

给了我错误

Android 设备不需要具有响应该Intent操作的活动。

当我从Play商店安装任何录音机时,此错误消失了,但是录制音频后它不会返回任何内容。它停留在记录器窗口上。

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

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

引用RECORD_SOUND_ACTION的文档,输出是"如果录制成功,则存储在媒体库中的录制声音的 uri"。IOW,在交付给onActivityResult()Intent上呼叫getData(),这应该是指向录制音频的Uri。请注意,这不必表示文件系统上的文件,更不用说您可以访问的文件了。

最新更新