音频录音机Android

问题描述:

我正在做一个应用程序来录制声音,但是当我尝试录制声音时,模拟器停止了,因为它要求我插入SD卡。我必须做什么?我离不开SD卡吗?音频录音机Android

谢谢!

package proiektua.proiektua; 


import java.io.FileDescriptor; 

import android.media.MediaPlayer; 
import android.net.Uri; 
import android.os.Bundle; 

import android.provider.MediaStore; 
import android.app.Activity; 
import android.content.Intent; 
import android.view.Menu; 
import android.view.View; 


public class MainActivity extends Activity { 

     int peticion = 1; 
     Uri url1; 
     private int STATE_CONFIGURE; 
     private int mState = STATE_CONFIGURE; 


     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.activity_main); 
     } 

     @Override 
     public boolean onCreateOptionsMenu(Menu menu) { 
      // Inflate the menu; this adds items to the action bar if it is present. 
      getMenuInflater().inflate(R.menu.main, menu); 
      return true; 
     } 

     public void grabar(View v) { 
      Intent intent = new Intent(MediaStore.Audio.Media.RECORD_SOUND_ACTION); 
      startActivityForResult(intent, peticion);} 

      public void setOutputFile(FileDescriptor fd) { 
        switch (mState) { 
       case STATE_RECORD: 
         throw new RuntimeException("setOutputFile cannot be called while recording!"); 

        case STATE_RELEASED: 
         throw new RuntimeException("setOutputFile called on an already released recorder!"); 
        default: 
         break; 
       } 
     } 

     public void reproducir(View v) { 
      MediaPlayer mediaPlayer = MediaPlayer.create(this, url1); 
      mediaPlayer.start(); 
     } 

     protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
      if (resultCode == RESULT_OK && requestCode == peticion) { 
       url1 = data.getData(); 
      } 
     } 

    } 

您可以选择通过mksdcard命令创建SDCard并将其与amulator相关联。

+0

但mksdcard是一个img,我把它放在哪里? – Alex23 2013-03-22 12:47:32

+0

通过IDE选择图像或在命令行中提及它。例如,查看[在eclipse上]的配置(http://i.stack.imgur.com/w9VwW.jpg)。启动模拟器之前,您可以选择SD卡。 – 2013-03-22 13:59:07

+0

我选择一个图像到我的IDE和SDCard desapear,好的。我给按钮记录和它的记录,但是当我给按钮播放,有一个奇怪的声音......为什么这样? @ Deepak Bala – Alex23 2013-03-26 18:29:48

请看看这个功能:

public void setOutputFile (FileDescriptor fd) 

Added in API level 3 
Pass in the file descriptor of the file to be written. Call this after setOutputFormat() but before prepare(). 

您可以决定在何处存储文件。

也看这个例子。 http://androidfreakers.blogspot.co.il/2011/09/using-mediarecorder.html

+0

如果我想用这个声音做其他功能,例如做傅立叶快速变换,我该如何选择这个声音? public void setOutputFile(FileDescriptor fd)我必须稍后或在“public void grabar”之后放置? – Alex23 2013-03-22 12:38:59

+0

如果你想使用fft我建议你不要在一个大文件上使用Jtransform库,还可以使用AudioRecorder而不是Media recorder来获得你需要的缓冲区。 – Gilad 2013-03-22 18:04:33

+0

我为MediaRecorder做过的永恒之作,让我删除它?当我做功能时,我把它放在主要或另一个班的活动中? – Alex23 2013-03-25 11:44:10