Я много искал, но не нашел решение для захвата звука, записанного в режиме рекордера.
private void onClick() {
Intent intent = new Intent();
intent.setAction(MediaStore.Audio.Media.RECORD_SOUND_ACTION);
try {
startActivityForResult(intent, IDF_ACTIVITY_AUDIO);
} catch (ActivityNotFoundException e) {
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
if (requestCode == IDF_ACTIVITY_AUDIO) {
final String folder = Environment.getExternalStorageDirectory() + "/myAudio/";
String pathAudio = data.getData().getPath();
Uri audioUri = data.getData();
// pathAudio == /external/audio/media/8
// audioUri /external/audio/media/8
File audio = new File(folder + "audioTest");
//how to getAudio from data and save in audio file???
}
}
}
Эти два метода показывают мою проблему. С объектом Uri, возвращаемым операцией Native Recorder, мне нужно сохранить аудио в моем собственном файле.
Кто-нибудь знает, как это сделать??
Можете ли вы указать некоторые ссылки, чтобы полностью понять, как работает Ури?
РЕДАКТИРОВАТЬ:
Строка '/external/audio/media/8' не представляет допустимый путь. Что означает эта строка?
Посмотрите, как начать запись звука с намерением MediaStore.Audio.Media.RECORD_SOUND_ACTION и использования намерения для записи звука,
Эти оба учебника дают вам URI после записи звука, используя этот URI, вы можете получить абсолютный путь к этому файлу, и вы также можете записать этот файл, где хотите использовать простую операцию ввода-вывода файлов.
РЕДАКТИРОВАТЬ:
new File(new URI(androidURI.toString()));
Привет, я также ищу для хранения записанных файлов в моей собственной папке
Но вы можете получить точное имя файла, используя
String absolutepath=getRealPathFromURI(audioUri);
public String getRealPathFromURI(Uri contentUri)
{
String[] proj = { MediaStore.Audio.Media.DATA};
Cursor cursor = managedQuery(contentUri, proj, null, null, null);
int column_index = 'enter code here'cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DATA);
cursor.moveToFirst();
System.out.println("absolutepath audiopath in getRealPathFromURI : "+cursor.getString(column_index));
return cursor.getString(column_index);
}