在Asus Tinkerboard 2S上,如果无法创建AudioRecord的本机代码,可能是由于缺少相应的权限或者硬件不支持所导致的。以下是一个可能的解决方法:
PackageManager packageManager = getPackageManager();
boolean hasMicrophone = packageManager.hasSystemFeature(PackageManager.FEATURE_MICROPHONE);
if (!hasMicrophone) {
// 设备不支持录音功能
}
int audioSource = MediaRecorder.AudioSource.MIC;
int sampleRateInHz = 44100;
int channelConfig = AudioFormat.CHANNEL_IN_MONO;
int audioFormat = AudioFormat.ENCODING_PCM_16BIT;
int bufferSizeInBytes = AudioRecord.getMinBufferSize(sampleRateInHz, channelConfig, audioFormat);
AudioRecord audioRecord = new AudioRecord(audioSource, sampleRateInHz, channelConfig, audioFormat, bufferSizeInBytes);
if (audioRecord.getState() == AudioRecord.STATE_INITIALIZED) {
// 成功创建AudioRecord对象
} else {
// 无法创建AudioRecord对象
}
通过以上步骤,你可以尝试解决在Asus Tinkerboard 2S上无法创建AudioRecord的问题。如果问题仍然存在,可能需要进一步检查硬件是否支持录音功能,或者尝试使用其他方式获取音频数据。