Reputation: 113
I've had some trouble sorting through all of the audio-related documentation for iOS. I see that I can control sound EQ by using Audio Units, but I am unclear on if this is only used for audio that I play from my own app.
I would like to build a screen that changes EQ for sound playing from other apps -- essentially a replacement for the system EQ in iOS audio settings. Is this possible? How would I accomplish this?
Upvotes: 11
Views: 2227
Reputation: 3494
Modifying 3rd party apps and their content is blocked by the sandbox in iOS. In fact, processes you create have no knowledge of other unrelated processes the device is running. Because of this, you can't do things like change data stored by other apps or modify audio streams being produced by other apps. In fact, the EQ settings in Settings > Music > EQ
abide by this, too. They don't modify any system-level sounds, but instead just modify the music being produced by the iOS Music app. The closest you could potentially get to achieving functionality you're looking for would be to create an Audio Unit Extenstion (available in iOS 9 and later), which allows you to create/modify audio streams in apps that support them, which are music apps like GarageBand. If you're only looking to support other apps that you/your organization have made, you could create an iOS App Group and apply EQs based on values you store in NSUserDefaults
Upvotes: 3