У меня проблема с моей программой, которая записывает микрофон. Иногда, когда я запускаю его, у меня появляются следующие предупреждения, и звук фактически не записывается:
12-14 11:17:50.660: W/AudioRecord(1857): obtainBuffer timed out (is the CPU pegged?) user=00000000, server=00000000
Из того, что я нашел, другие имеют эту проблему с AudioTrack
, как объяснено здесь и здесь Однако для меня это AudioRecord
, который не работает должным образом. Я понимаю, что буфер не может быть создан по любой причине. При запуске процесса записи появляется предупреждение: recorder.startRecording();
Эта проблема иногда возникает, когда я использую встроенный микрофон в качестве входа, но часто, когда гарнитура Bluetooth
используется в качестве входа. Вот мой код для использования микрофона Bluetooth
в качестве входа:
audioManage = (AudioManager)this.getSystemService(Context.AUDIO_SERVICE);
if (!audioManage.isBluetoothScoOn()) {
audioManage.setBluetoothScoOn(true);
audioManage.startBluetoothSco();
audioStreaming = new AudioStreaming();
} else {
audioManage.startBluetoothSco();
audioStreaming = new AudioStreaming();
}
Как я могу форсировать создание буфера?
ИНФОРМАЦИЯ: Я использую Android 3.0 и протестировал программу на планшете Xoom.
EDIT:
Я только что понял, что у меня тоже есть эта ошибка:
12-14 12:13:12.500: E/AudioPostProcessor(2541): Error reading from audio in: Connection timed out
Только когда программа не работает с Bluetooth. И я не нашел ничего по этому вопросу ...