Получить аудио, записанное RecorderAudio Activity - PullRequest
1 голос
/ 07 декабря 2011

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

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 Activity, мне нужно сохранить аудио в моем собственном файле.

Кто-нибудь знает, как это сделать ??

Можете ли вы указать некоторые ссылки, чтобы полностью понять, какUri работает?

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

Строка '/ external / audio / media / 8' не представляет допустимый путь.Что означает эта строка?

Ответы [ 2 ]

1 голос
/ 29 декабря 2011

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

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

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);
}
1 голос
/ 07 декабря 2011

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

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

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

new File(new URI(androidURI.toString()));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...