Rodrigo
Rodrigo

Reputation: 4802

Get Audio Recorded by RecorderAudio Activity

I've searched a lot, but didnt found the solution to capture the audio recorded by 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???
        }
    }
}

This two methods show my problem. With the Uri object returned by Native Recorder Activity, I need to save the audio in my own file.

Anyone know how to do this??

Can you indicate some links to fully understand how Uri works?

EDIT:

The String '/external/audio/media/8' do not represent valid path. What this string means?

Upvotes: 1

Views: 2914

Answers (2)

Ram
Ram

Reputation: 521

Hi i am also searching for storing the recorded files in my own folder

But you can get the exact file name using

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);
}

Upvotes: 1

user370305
user370305

Reputation: 109237

Look at Start audio recording with intent of MediaStore.Audio.Media.RECORD_SOUND_ACTION and Using Intent to record audio,

These both tutorial give you a URI after recording audio now using that uRI you can get absolute path of that file and you can also write that file where you want using simple File I/O operation.

EDIT:

new File(new URI(androidURI.toString()));

Upvotes: 1

Related Questions