更改录音机文件的默认位置

时间:2015-09-09 14:38:37

标签: android audio-recording

我在Android应用程序中使用内置录音机。有没有办法可以更改录制文件的默认位置?它们存储在" Sound" SD卡中的文件夹。我想将它们存储在不同的文件夹中。我怎么做,如果可能的话?

以下是调用内置Android录音笔App的简单代码。

Button startRecording = (Button) findViewById(R.id.startBtn);

    startRecording.setOnClickListener(new View.OnClickListener() 
    {
        public void onClick(View v) 
        {
            Intent recordIntent = new Intent(
                    MediaStore.Audio.Media.RECORD_SOUND_ACTION); 

            startActivityForResult(recordIntent, REQUEST_CODE_RECORD);

        }
    });

1 个答案:

答案 0 :(得分:0)

您必须允许使用所使用的默认位置和文件名记录文件,然后移动文件。 您可以在 onActivityResult

中执行类似的操作
   @Override protected void onActivityResult(
         int requestCode, int resultCode, Intent data) {
      switch (requestCode) {
      case REQUEST_CODE_RECORD:
         if (resultCode == Activity.RESULT_OK) {
            // Sound recorder does not support EXTRA_OUTPUT
            Uri uri = data.getData();
            try {
               String filePath = getAudioPathFromUri(uri);
               copyFile(filePath);
               getContentResolver().delete(uri, null, null);  
               (new File(filePath)).delete();
            } catch (IOException e) {
               throw new RuntimeException(e);
            }
         }
      }
   }

   private String getAudioPathFromUri(Uri uri) {
      Cursor cursor = getContentResolver()
            .query(uri, null, null, null, null);
      cursor.moveToFirst();
      int index = cursor.getColumnIndex(MediaStore.Audio.AudioColumns.DATA);
      return cursor.getString(index);
   }

   private void copyFile(String fileName) throws IOException {
      Files.copy(new File(fileName), 
         new File(Environment.getExternalStorageDirectory(), fileName));
   }
}