@WorkerThread public synchronized boolean startRecord(){
  if (mRecorder == null || mState != STATE_PREPARED) {
    setError(ERROR_NOT_PREPARED);
    return false;
  }
  try {
    mRecorder.start();
  }
 catch (  RuntimeException exception) {
    Log.w(TAG,"startRecord fail, start fail: " + exception.getMessage());
    setError(ERROR_INTERNAL);
    mRecorder.reset();
    mRecorder.release();
    mRecorder=null;
    return false;
  }
  mSampleStart=System.currentTimeMillis();
  mState=STATE_RECORDING;
  return true;
}

@ WorkerThread public synchronized boolean startRecord ( ) { if ( mRecorder == null || mState != STATE_PREPARED ) { setError ( ERROR_NOT_PREPARED ) ; return false ; } try { mRecorder . start ( ) ; } catch ( RuntimeException exception ) { Log . w ( TAG , "startRecord fail, start fail: " + exception . getMessage ( ) ) ; setError ( ERROR_INTERNAL ) ; mRecorder . reset ( ) ; mRecorder . release ( ) ; mRecorder = null ; return false ; } mSampleStart = System . currentTimeMillis ( ) ; mState = STATE_RECORDING ; return true ; }
after prepared , start record now .
