2011-12-07 31 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