当您查看源代码时,将非常清楚:

public AudioRecord(int audioSource, int sampleRateInHz, int channelConfig, int audioFormat,

int bufferSizeInBytes)

throws IllegalArgumentException {

mState = STATE_UNINITIALIZED;

mRecordingState = RECORDSTATE_STOPPED;

... //parameter checks

// native initialization

//update native initialization when information about hardware init failure

//due to capture device already open is available.

int initResult = native_setup( new WeakReference(this),

mRecordSource, mSampleRate, mChannels, mAudioFormat, mNativeBufferSizeInBytes);

if (initResult != SUCCESS) {

loge("Error code "+initResult+" when initializing native AudioRecord object.");

return; // with mState == STATE_UNINITIALIZED

}

mState = STATE_INITIALIZED;

}

因此,您不必等待其状态转换.调用构造函数一次后,只需检查状态.如果native_setup中有任何错误,则状态将为STATE_UNINITIALIZED.

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐