OpenAL. MACOS. Захват и рендеринг с одного устройства (Bluetooth-гарнитура) - PullRequest
0 голосов
/ 29 апреля 2020

Добрый день!

Наше приложение должно воспроизводить звук, исходящий из сети с сервера, собирать звук от пользователя через микрофон и отправлять его обратно на сервер. Для этих целей (рендеринг и захват) мы используем OpenAL. Все работает нормально, когда мы используем оборудование, встроенное в Ma c. Когда мы используем Bluetooth-наушники с микрофоном, возникают проблемы. Например, Apple Airpods или Meizu POP.

Если мы используем реализацию OpenAL, которую предоставляет Apple, звук не воспроизводится вообще. Устройство не обрабатывает звуковые данные и alGetSourcei(/*our source*/, AL_BUFFERS_PROCESSED, &buffersProcessed) всегда устанавливает buffersProcessed в 0.

Если мы используем реализацию OpenAL-Soft , устройство обрабатывает входящие данные, и мы слышим звук. Но этот звук приглушен звуками, похожими на звук старой видеокассеты VHS.

Рендеринг и захват выполняются в отдельных потоках, и доступ к устройству не синхронизируется. Логика c для захвата и рендеринга является стандартной и выполняется в соответствии с OpenAL документацией .

Может быть, кто-то сталкивался с таким некорректным поведением? Буду рад любой помощи и вопросам.

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...