【发布时间】:2021-07-01 11:13:57
【问题描述】:
目前正在开发一个基于 Android 和 iOS 的移动声音分析项目。该项目正在 Unity 中开发。 Android 版本可以正常运行,但在 iOS 上,它只能在较旧的设备(iphone 5、iphone 6)上运行。从 iPhone 8 开始,苹果增加了 麦克风输入上的回声消除 (AEC)、自动增益控制 (AGC) 和高通滤波器 (HPF)。我们的应用程序分析麦克风输入并计算输入的分贝 (db) 以及我们用于迷你游戏的值。 Apple 的 3 项功能的问题在于,它会在达到某个分贝阈值后切断输入,而且它只是没有记录更高的分贝或音高。
我想在 iPhone 版本上禁用这些功能或以某种方式绕过它们,但到目前为止我还没有找到任何可行的解决方案。我想到了什么:
- 将项目从 Unity 构建到 Xcode。
- 将一些 swift 代码放入 Xcode 中构建的项目中,这将在应用程序启动时禁用这些麦克风功能(如果可能的话?)。
我发现了这个问题 - link - 答案似乎很好,但我无法实现它,因为我没有使用任何本机 Xcode 音频引擎(如 AVAudioRecorder、AVFAudio 等),而是我' m 使用 Unity 的音频解决方案。
所以我的问题是:是否可以在 Unity 项目中使用 Swift 禁用上述 iPhone 麦克风功能,而不使用任何 Xcode/Swift 音频引擎?
我想指出,如果我们使用外部麦克风,该应用程序适用于所有新 iPhone 设备。
【问题讨论】:
-
@Shadowrun 我已经遇到过,但这不是 Unity 构建项目的解决方案(阅读我的完整问题,我什至引用了该链接)。
标签: ios swift iphone xcode unity3d