是否可以控制iOS系统均衡器(以便我可以影响其他应用程序的音频播放)

时间:2022-11-19 10:32:05

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.

我在排序iOS的所有音频相关文档时遇到了一些麻烦。我看到我可以通过使用音频单元控制声音均衡器,但我不清楚这是否仅用于我从我自己的应用程序播放的音频。

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?

我想构建一个屏幕,改变其他应用程序播放声音的EQ - 实际上是iOS音频设置中系统EQ的替代品。这可能吗?我怎么做到这一点?

1 个解决方案

#1


2  

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

iOS中的沙箱会阻止修改第三方应用及其内容。实际上,您创建的进程不了解设备运行的其他不相关的进程。因此,您无法执行更改其他应用程序存储的数据或修改其他应用程序生成的音频流等操作。事实上,设置>音乐> EQ中的EQ设置也遵守此设置。它们不会修改任何系统级声音,而只是修改iOS音乐应用程序生成的音乐。您可能获得的最接近功能的是创建音频单元扩展(在iOS 9及更高版本中可用),它允许您在支持它们的应用程序(音乐应用程序)中创建/修改音频流喜欢GarageBand。如果您只想支持您/您的组织所做的其他应用,您可以创建一个iOS应用组并根据您存储在NSUserDefaults中的值应用EQ

#1


2  

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

iOS中的沙箱会阻止修改第三方应用及其内容。实际上,您创建的进程不了解设备运行的其他不相关的进程。因此,您无法执行更改其他应用程序存储的数据或修改其他应用程序生成的音频流等操作。事实上,设置>音乐> EQ中的EQ设置也遵守此设置。它们不会修改任何系统级声音,而只是修改iOS音乐应用程序生成的音乐。您可能获得的最接近功能的是创建音频单元扩展(在iOS 9及更高版本中可用),它允许您在支持它们的应用程序(音乐应用程序)中创建/修改音频流喜欢GarageBand。如果您只想支持您/您的组织所做的其他应用,您可以创建一个iOS应用组并根据您存储在NSUserDefaults中的值应用EQ