音频录音机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();
}
}
}
请看看这个功能:
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
如果我想用这个声音做其他功能,例如做傅立叶快速变换,我该如何选择这个声音? public void setOutputFile(FileDescriptor fd)我必须稍后或在“public void grabar”之后放置? – Alex23 2013-03-22 12:38:59
如果你想使用fft我建议你不要在一个大文件上使用Jtransform库,还可以使用AudioRecorder而不是Media recorder来获得你需要的缓冲区。 – Gilad 2013-03-22 18:04:33
我为MediaRecorder做过的永恒之作,让我删除它?当我做功能时,我把它放在主要或另一个班的活动中? – Alex23 2013-03-25 11:44:10
但mksdcard是一个img,我把它放在哪里? – Alex23 2013-03-22 12:47:32
通过IDE选择图像或在命令行中提及它。例如,查看[在eclipse上]的配置(http://i.stack.imgur.com/w9VwW.jpg)。启动模拟器之前,您可以选择SD卡。 – 2013-03-22 13:59:07
我选择一个图像到我的IDE和SDCard desapear,好的。我给按钮记录和它的记录,但是当我给按钮播放,有一个奇怪的声音......为什么这样? @ Deepak Bala – Alex23 2013-03-26 18:29:48