簡體   English   中英

android中的錄音問題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM