一、音频录制
音频录制动作为MediaStore.Audio.Media.RECORD_SOUND_ACTION。这个动作不支持通过EXTRA_OUTPUT属性设置目标音频文件(拍照和视频录制动作支持设置目标文件),只能从返回的Intent中获得生成的音频在MediaStore中的Uri。音频的Uri格式为:
content://media/external/audio/media/202300
最后的数字是音频在MediaStore中的ID,再通过MediaStore的ContentProvider可得到文件位置等信息。再根据需要进行处理,比如可以将文件拷贝到应用的目录下。
下面是具体的启动录制音频界面的代码:
Intent intent = new Intent(MediaStore.Audio.Media.RECORD_SOUND_ACTION);
startActivityForResult(intent, RECORD_AUDIO);
启动后的界面如下图:
录音完成退出录音界面后,会调用主活动的onActivityResult方法。所以在该方法中,对新录制的音频进行处理。录制音频返回新生成的音频,Uri格式,一般将文件拷贝到需要的目录。代码如下:
if(requestCode==RECORD_AUDIO && resultCode==RESULT_OK) {
Uri uri = data.getData(); // 获得生成音频的uri
Toast.makeText(this, "录制音频成