Получить аудио, записанное RecorderAudio Activity

1

Я много искал, но не нашел решение для захвата звука, записанного в режиме рекордера.

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' не представляет допустимый путь. Что означает эта строка?

  • 0
    Посмотрите на мой отредактированный ответ ..
Теги:
android-activity

2 ответа

1
Лучший ответ

Посмотрите, как начать запись звука с намерением MediaStore.Audio.Media.RECORD_SOUND_ACTION и использования намерения для записи звука,

Эти оба учебника дают вам URI после записи звука, используя этот URI, вы можете получить абсолютный путь к этому файлу, и вы также можете записать этот файл, где хотите использовать простую операцию ввода-вывода файлов.

РЕДАКТИРОВАТЬ:

new File(new URI(androidURI.toString()));
  • 0
    Две ссылки делают то же самое. «Используя этот URI, вы можете получить абсолютный путь к этому файлу». Это мой вопрос!
  • 0
    Вы проверили путь, файл есть или нет?
1

Привет, я также ищу для хранения записанных файлов в моей собственной папке

Но вы можете получить точное имя файла, используя

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);
}
  • 0
    Если вы получили, как хранить записанные файлы в отдельной папке, не могли бы вы поделиться кодом?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню