Аудио часто проблематично, и в большинстве случаев хорошей идеей будет написать собственный высокоуровневый API, который будет делать именно то, что вы хотите (и ничего больше), и предположить, что тогда вы будете писать тонкий слой между ним. и любую аудио-библиотеку, которую вы используете внизу. Если вам повезло, и есть библиотека, которая делает вещи так, как вы это делаете, тогда это тривиально. Если нет, по крайней мере, это все еще возможно. В любом случае код вашего приложения не привязан к внешнему звуковому API.
В течение многих лет я использовал FMOD в различных коммерческих проектах для ПК, Mac и iPhone, и мне всегда это нравилось - но это не бесплатно. OpenAL всегда казался сорта, я не знаю: clunky? Но вам нужно иметь дело только с этим при написании уровня API, и код вашего приложения никогда не должен его видеть.
Мне легко сказать «напиши свой собственный API», так как я пишу коммерческие игры в течение 20 лет и поэтому знаю, как, по моему мнению, должен выглядеть аудио API. Если у вас нет собственного представления о том, как, по вашему мнению, это должно быть, то я предлагаю вам взглянуть на стороннюю библиотеку, которая имеет для вас смысл, и взять из нее функции, которые вы будете использовать, и написать свой собственный API для набор функций, которые ничего не делают, кроме как вызывают их.
Поскольку у вас есть и OpenAL, и FMOD, доступные вам бесплатно для разработки, вы можете затем заставить свой API работать с обоими, и есть вероятность, что тогда он будет работать со всем, с чем вы можете столкнуться.