2013-03-22 118 views
1

我正在做一個應用程序來錄製聲音,但是當我嘗試錄製聲音時,模擬器停止了,因爲它要求我插入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(); 
      } 
     } 

    } 

回答

1

您可以選擇通過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

1

請看看這個功能:

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