在选择点击开始录音按钮时,不能运行,请教一下是什么问题
private void initRecorder() {
        recorder.setAudioSource(MediaRecorder.AudioSource.MIC); 
        recorder.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT); 
        recorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
        fileRecord = File.createTempFile("record", ".wav", Environment.getExternalStorageDirectory());
        recorder.setOutputFile(fileRecord.getAbsolutePath());
        recorder.prepare();
}

解决方案 »

  1.   

     recorder.prepare();
     recorder.start();
      

  2.   

    完整的是
    public class RecordDialog  extends Dialog implements View.OnClickListener
     {   
    private Button recordBtn;
    private Button stopBtn;
        private Button playBtn;
        private Button cancelBtn;
    private File fileRecord;
    private MediaRecorder recorder;
        Window window=null;
    public RecordDialog(Context context,int x,int y) {
    super(context);
    // TODO Auto-generated constructor stub
    setDisplay(x,y);
            playBtn.setEnabled(false);
            stopBtn.setEnabled(false);
    }
        @Override
    protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    }    public void setDisplay(int x,int y){
            setContentView(R.layout.record);
            setProperty(x,y);
            setTitle("跟读");
            show();
            getInstance();
            setListener();    
            
        }
        public void setProperty(int x,int y){
            window=getWindow();
            WindowManager.LayoutParams wl = window.getAttributes();
            wl.x=x;
            wl.y=y;    
            wl.alpha=0.8f;
            wl.gravity=Gravity.BOTTOM;         
            window.setAttributes(wl);        
       }
        public void getInstance(){
            recordBtn=(Button)findViewById(R.id.record);
            playBtn=(Button)findViewById(R.id.play);
            cancelBtn=(Button)findViewById(R.id.cancel);
            stopBtn=(Button)findViewById(R.id.stop);
        }
        void setListener(){
         recordBtn.setOnClickListener(this);
            playBtn.setOnClickListener(this);
            stopBtn.setOnClickListener(this);
            cancelBtn.setOnClickListener(this);
        } private void onPlayRecording() {
    // TODO Auto-generated method stub  
        stopBtn.setEnabled(false);
            recordBtn.setEnabled(true);
    }

    private void onStopRecording() {
    // TODO Auto-generated method stub
           playBtn.setEnabled(true);
        recordBtn.setEnabled(true);
        stopBtn.setEnabled(false);
        if (recorder != null) {
    recorder.stop();
    recorder.release();
    recorder = null;
    }
    }

    private void onStartRecording() {
    // TODO Auto-generated method stub
            stopBtn.setEnabled(true);
            playBtn.setEnabled(false);
            recordBtn.setEnabled(false);
            initRecorder();
           // recorder.start();
    }

    private void initRecorder() {
    // TODO Auto-generated method stub
    recorder.setAudioSource(MediaRecorder.AudioSource.MIC); 
    recorder.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT); 
    recorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
    try {
    fileRecord = File.createTempFile("record", ".wav", Environment
    .getExternalStorageDirectory());
    } catch (IOException e1) {
    // // TODO Auto-generated catch block
    e1.printStackTrace();
    } recorder.setOutputFile(fileRecord.getAbsolutePath());
    try {
    recorder.prepare();
    } catch (IllegalStateException e) { e.printStackTrace();
    } catch (IOException e) {      e.printStackTrace();
        }
    }
    public void onClick(View v) {
    // TODO Auto-generated method stub
      switch(v.getId()){
            case R.id.stop:
                     onStopRecording();
                 break;
            case R.id.play:
                    onPlayRecording();
              break;
            case R.id.record:
              onStartRecording();
                 break;
            case R.id.cancel:
                 dismiss();
                //new MyDialog(getContext()).setDisplay();
                 break;
            default:
            } }
    }