private void onError(int errorCode) { if (errorCode == AudioRecord.ERROR_INVALID_OPERATION) { Log.w(TAG, "record fail: ERROR_INVALID_OPERATION"); mAudioDataCallback.onError(); } else if (errorCode == AudioRecord.ERROR_BAD_VALUE) { Log.w(TAG, "record fail: ERROR_BAD_VALUE"); mAudioDataCallback.onError(); } } }
} catch (IllegalStateException e) { Log.w(TAG, "startRecording fail: " + e.getMessage()); mAudioDataCallback.onError(); return; ret = mAudioRecord.read(mShortBuffer, 0, mShortBufferSize); if (ret > 0) { mAudioDataCallback.onAudioData( short2byte(mShortBuffer, ret, mByteBuffer), ret * 2); } else { ret = mAudioRecord.read(mByteBuffer, 0, mByteBufferSize); if (ret > 0) { mAudioDataCallback.onAudioData(mByteBuffer, ret); } else { onError(ret);