Добрый день!
Наше приложение должно воспроизводить звук, исходящий из сети с сервера, собирать звук от пользователя через микрофон и отправлять его обратно на сервер. Для этих целей (рендеринг и захват) мы используем OpenAL. Все работает нормально, когда мы используем оборудование, встроенное в Ma c. Когда мы используем Bluetooth-наушники с микрофоном, возникают проблемы. Например, Apple Airpods или Meizu POP.
Если мы используем реализацию OpenAL, которую предоставляет Apple, звук не воспроизводится вообще. Устройство не обрабатывает звуковые данные и alGetSourcei(/*our source*/, AL_BUFFERS_PROCESSED, &buffersProcessed)
всегда устанавливает buffersProcessed
в 0.
Если мы используем реализацию OpenAL-Soft , устройство обрабатывает входящие данные, и мы слышим звук. Но этот звук приглушен звуками, похожими на звук старой видеокассеты VHS.
Рендеринг и захват выполняются в отдельных потоках, и доступ к устройству не синхронизируется. Логика c для захвата и рендеринга является стандартной и выполняется в соответствии с OpenAL документацией .
Может быть, кто-то сталкивался с таким некорректным поведением? Буду рад любой помощи и вопросам.
Спасибо!