Я создал объект Audio Track и Audio Recorder и попытался вернуть звук микрофона в динамик.
Для этого я создал задачу, которая «считывает» аудиоданные из задачи «Аудиозапись» и «записывает обратно» на аудиодорожку. Кажется, он работает нормально. Однако, играя с этим приложением, пытаясь манипулировать данными, я узнал, что эта задача, которая копирует данные аудиодорожки и записывает их обратно, практически ничего не делает - я удалил ее и остался только с двумя строками:
audioRecord.startRecording();
audioTrack.play();
Нет ни чтения, ни записи — приложение продолжает работать — т. е. данные с микрофона передаются эхом в динамик! На практике все операции чтения и записи, которые я пытался выполнить, игнорируются!
Некоторое другое неожиданное поведение:
Я попытался остановить этот процесс, позвонив AudioTrack.stop()
или AudioTrack.pause()
- ничего не происходит, единственный способ остановить звук был вызовом AudioRecord.stop()
, однако после наклона AudioRecord
я не смог найти способ перезапустить его.
Кто-нибудь еще испытал это? у кого-нибудь есть решение? Кто-нибудь может объяснить такое странное поведение Android AudioTrack
и AudioRecord
?