Воспроизведение звука на Android с помощью SoundPool во время записи микрофона с помощью AudioRecord

Я использую AudioRecord для записи данных с микрофона, в то же время воспроизводя звуки с помощью SoundPool. Моя проблема: Когда я вызываю startRecording() в AudioRecord, SoundPool становится прерывистым или полностью останавливается. Когда я вызываю stopRecording(), все включенные звуки приходят сразу. Есть ли лучшая библиотека, которую я должен использовать? Я заметил, что кнопки в приложении по-прежнему отзывчивы и могут воспроизводить звуки по умолчанию.

SoundPool перестает воспроизводить звуки, даже когда поток, вызвавший AudioRecord.startRecording(), завершен. Он не воспроизводит звуки снова, пока я не вызову AudioRecord.stopRecording(). Я хотел бы сделать оба сразу. Поскольку звуки, которые я играю, - это короткие звуки, я подумал, что SoundPool был правильным классом для использования. Если кто-то знает, как класс кнопок пользовательского интерфейса Android воспроизводит свои звуки, я могу скопировать его, и оно должно работать.

Это в эмуляторе с последней версией Android Studio 1.0.2

Изменить: MediaPlayer хуже, он завершается неудачно после вызова AudioRecord.startRecording() и имеет гораздо большую задержку, чем SoundPool (когда не записывается в то же время.) Я знаю, что SoundPool.play() вызывался регулярно из-за операторов Log.

1 ответ

Решение

Это просто эмулятор. Он работает на физическом устройстве Android.

Другие вопросы по тегам