speex_bits_reset在其主体中执行以下操作:
bits->nbBits=0;
speex_bits_nbytes返回((bits-> nbBits + 7)>> 3);
因此,如果在speex_bits_reset之后立即调用speex_bits_nbytes,则始终会收到0。因此,必须在分配数组之前调用speex_bits_read_from:
speex_bits_reset(&decod_bits);speex_bits_read_from(&decod_bits,(char *) inputArrayElements, nbBytes);nbBytes = speex_bits_nbytes(&decod_bits);ret = (jshortArray)((*env)->NewShortArray(env, nbBytes));jshort * arrayElements = (*env)->GetShortArrayElements(env, ret, 0);speex_depre_int(decod_state, &decod_bits, arrayElements);(*env)->ReleaseCharArrayElements(env, inputCharData, inputArrayElements, JNI_ABORT);(*env)->ReleaseShortArrayElements(env, ret, arrayElements, 0);return ret;



