通过AIDL创建audiorecoder且当前有录音权限,出现 E/android.media.AudioRecord: Error code -20 when initializing native AudioRecord object.
时间: 2024-03-20 15:43:51 浏览: 18
这个问题可能是由于录音权限被其他应用程序占用导致的。你可以尝试以下步骤来解决这个问题:
1. 确保你的应用程序已经获得了录音权限。你可以在AndroidManifest.xml文件中添加以下权限:
```
<uses-permission android:name="android.permission.RECORD_AUDIO" />
```
2. 检查是否有其他应用程序正在使用录音设备。你可以通过使用`AudioManager`类的`isMicrophoneMute()`方法检查麦克风是否被其他应用占用。
3. 如果其他应用程序正在使用录音设备,你可以尝试关闭它们或者等待它们释放录音设备。
4. 如果以上步骤都不能解决问题,你可以尝试在`AudioRecord`对象的构造函数中设置不同的音频源和采样率,例如:
```
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);
```
希望这些步骤能够帮助你解决这个问题。