3

Good day!

Our application should play the sound that came from the network from the server and collect sound from the user through a microphone and send it back to the server. For these purposes (render and capture) we use OpenAL. Everything works fine when we use the equipment built into the Mac. When we use bluetooth headphones that have microphone, problems arise. For example, Apple Airpods or Meizu POP.

If we use OpenAL implementation that Apple provides, there is no sound rendering at all. Device doesn't process sound data and alGetSourcei(/*our source*/, AL_BUFFERS_PROCESSED, &buffersProcessed) always set buffersProcessed in 0.

If we use OpenAL-Soft implementation, device process incoming data and we hear the sound. But this sound is muffled, with noises, like the sound from an old VHS video cassette.

Rendering and capture run in separate threads and device access is not synchronized. The logic for capturing and rendering is standard and done according to the OpenAL documentation.

Maybe someone has encountered such incorrect behavior? I will be glad of any help and questions.

Thanks!

Kirill Chernikov
  • 1,387
  • 8
  • 21

0 Answers0