[英]sound recording problem in android
我正在為平板電腦創建一個錄音機應用程序。我嘗試了下面的代碼來錄制聲音。但是當我單擊停止按鈕時它崩潰了...
public class soundrecord extends Activity {
private Button start;
private Button stop;
private TextView txt;
MediaRecorder recorder;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
start=(Button)findViewById(R.id.start);
stop=(Button)findViewById(R.id.stop);
txt=(TextView)findViewById(R.id.txtstatus);
recorder = new MediaRecorder();
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setOutputFormat(MediaRecorder.OutputFormat.AMR_NB);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
recorder.setOutputFile("/myfile/temp");
start.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
try {
txt.setText("recording");
recorder.prepare();
recorder.start();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}) ;
stop.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
txt.setText("stop recording");
recorder.stop();
/*recorder.reset();
recorder.release();*/
}
}) ;
}
}
這是logcat中顯示的異常
05-12 15:49:01.013:錯誤/ AndroidRuntime(677):java.lang.IllegalStateException
如果在start()之前調用,則拋出IllegalStateException
現在,我假設您沒有在開始之前調用它。 我想知道您的onCreate()是否正確進行。 如果由於某種原因第二次調用onCreate()(例如,屏幕旋轉),則會創建一個新的MediaRecorder,並且您將在尚未開始調用的記錄器上調用stop()。
另外,您確定start()正常工作嗎? IllegalStateException可能來自start()。 您能給我們完整的堆棧跟蹤信息來說明IllegalStateException的來源嗎?
繼續執行您給出的例外。 這可能是因為聽力計目錄不存在。 如果使用File.mkdir()創建此文件,則它將正常工作。 或者,嘗試使用示例中給出的頂級文件名運行: http : //developer.android.com/guide/topics/media/index.html
recorder.setOutputFile("/audiorecordtest.3gp");
請通過以下鏈接。 這是我在developer.android.com中找到的示例代碼,可能會對您有所幫助http://developer.android.com/guide/topics/media/index.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.