在MediaStore中有ACTION_IMAGE_CAPTURE,也有ACTION_VIDEO_CAPTURE,
都能够调用系统照相机或摄像机并且返回包含数据的intent,那录音机该如何调用?
MediaStore.Audio.Media.RECORD_SOUND_ACTION并不能返回数据啊,它直接就把音频存储了。
为什么相机和视频都有了,没有录音机的呢?
音频也是在onActivityResult中获取
调用系统音频:
Intent intent = new Intent(MediaStore.Audio.Media.RECORD_SOUND_ACTION);
startActivityForResult(intent, RECORD_AUDIO);
获取Uri:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
case RECORD_AUDIO:
try {
Uri uri = data.getData();
String filePath = getAudioFilePathFromUri(uri);
Log.d(TAG, filePath);
} catch (Exception e) {
throw new RuntimeException(e);
}
break;
}
}
private String getAudioFilePathFromUri(Uri uri) {
Cursor cursor = getContentResolver()
.query(uri, null, null, null, null);
cursor.moveToFirst();
int index = cursor.getColumnIndex(MediaStore.Audio.AudioColumns.DATA);
return cursor.getString(index);
}
filePath就是你录的音频文件,你可以copy到任何位置。
不用忘记添加uses-permission相关权限