2011-12-07 66 views
1

我搜索了很多,但沒有找到解決方案來捕獲記錄器活動記錄的音頻。獲取Recorder RecorderAudio活動

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??? 
     } 
    } 
} 

這兩個方法顯示我的問題。通過Native Recorder Activity返回的Uri對象,我需要將音頻保存在自己的文件中。

任何人都知道如何做到這一點?

你能指出一些鏈接來充分理解Uri的工作原理嗎?

編輯:

字符串 '/外部/音頻/媒體/ 8' 並不代表有效路徑。這串意味着什麼?

+0

看看確切的文件名我編輯的答案.. – user370305

回答

1

Start audio recording with intent of MediaStore.Audio.Media.RECORD_SOUND_ACTIONUsing Intent to record audio

這些都教程給你一個URI現在正在錄製的音頻使用URI你可以得到該文件的絕對路徑後,你也可以寫你想要使用簡單文件我該文件/ O操作。

編輯:

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

這兩個鏈接做相同的I.「使用該URI您可以獲得該文件的絕對路徑」。這是我的問題! – Rodrigo

+0

您是否檢查過路徑,是否存在文件? – user370305

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

如果您有如何將錄製的文件存儲在單獨的文件夾中,您可以共享代碼嗎? – Ram