2012-08-09 64 views
0

我的项目的开发平台的文件是谷歌API7。它可以与下面的2.2的版本上运行设备,但是当我安装上2.3版本以上,我的文件不能被保存在SD卡AudioRecord不能节省2.3

这是我的代码

class ButtonListener implements OnClickListener 
{ 
    public void onClick(View v) 
    { 
     if (v == startButton) 
     { 
     setTitle("Start Recording and transmitting the file"); 
     bar.setMax(second); 
     updateBarHandler.post(updateThread); 
     startButton.setVisibility(View.GONE); 
     exitButton.setVisibility(View.GONE); 
     stopButton.setVisibility(View.GONE); 


     } 

     if (v == stopButton)     
     { 
      setTitle("Stop"); 
      handler.removeCallbacks(updateThread); 
      recorderInstance.setRecording(false); 
      recorderInstance = null; 
      startButton.setVisibility(View.VISIBLE); 
      exitButton.setVisibility(View.VISIBLE); 
     } 

     if (v == exitButton) 
     { 
      Intent intent = new Intent(); 
      intent.setClass(MyRecorder.this, User.class); 
      startActivity(intent); 
      MyRecorder.this.finish(); 
     } 
    } 
} 
+0

如果您发现相对的答案,然后接受它。 – 2012-08-09 09:06:40

回答

0

试试这个代码录制音频。

File sampleDir = Environment.getExternalStorageDirectory(); 
try { 
audiofile = File.createTempFile("Recording", ".3gp", sampleDir); 
recorder = new MediaRecorder(); 
recorder.setAudioSource(MediaRecorder.AudioSource.MIC); 
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); 
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); 
    recorder.setOutputFile(audiofile.getAbsolutePath()); 
    recorder.prepare(); 
recorder.start(); 
    } 
    catch (IOException e) 
    { 
    Log.e(TAG, "sdcard access error"); 
    return; 
} 

您可以使用以下代码将此音频保存在SD卡中。

audioFileName=input.getText().toString(); 
current = System.currentTimeMillis(); 
String artist = "" + getResources().getText(R.string.artistName); 
ContentValues values = new ContentValues(); 
values.put(MediaStore.MediaColumns.DATA, audiofile.getAbsolutePath()); 
values.put(MediaStore.MediaColumns.TITLE, audioFileName); 
values.put(MediaStore.Audio.Media.DATE_ADDED, current); 
values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/3gpp"); 
values.put(MediaStore.Audio.Media.ARTIST, artist);    
values.put(MediaStore.Audio.Media.DATA, audiofile.getAbsolutePath()); 
ConntentResolver contentResolver = getContentResolver(); 
Uri base = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI; 
Uri newUri1 = contentResolver.insert(base, values);