Можно ли управлять эквалайзером системы iOS (чтобы я мог влиять на воспроизведение звука из других приложений)

У меня возникли проблемы с сортировкой всей документации по аудио для iOS. Я вижу, что я могу управлять звуковым эквалайзером с помощью Audio Units, но неясно, используется ли это для звука, который я воспроизвожу из своего собственного приложения.

Я хотел бы создать экран, который изменяет эквалайзер для воспроизведения звука из других приложений - по сути, это замена для эквалайзера системы в настройках звука iOS. Это возможно? Как бы это сделать?

Ответ 1

Изменение сторонних приложений и их содержимого блокируется песочницей в iOS. Фактически, процессы, которые вы создаете, не имеют знаний о других несвязанных процессах, выполняемых устройством. Из-за этого вы не можете делать такие вещи, как изменение данных, хранящихся в других приложениях, или изменение аудиопотоков, создаваемых другими приложениями. Фактически, настройки EQ в Settings > Music > EQ соответствуют этому. Они не изменяют звуки на системном уровне, а просто изменяют музыку, создаваемую приложением iOS Music. Самое близкое, что вы могли бы получить к достижению функциональности, которую вы ищете, - это создать Audio Unit Extenstion (доступно в iOS 9 и более поздних версиях), который позволяет создавать/изменять аудиопотоки в приложениях, которые их поддерживают, которые являются музыкальными приложениями, такими как GarageBand. Если вы ищете поддержку других приложений, которые вы или ваша организация сделали, вы можете создать группу приложений iOS и применить эквалайзеры на основе значения, хранящиеся в NSUserDefaults