macOS 权利音频输入与麦克风

Posted

技术标签:

【中文标题】macOS 权利音频输入与麦克风【英文标题】:macOS Entitlements audio-input vs. microphone 【发布时间】:2018-04-01 07:28:23 【问题描述】:

对于 macOS 沙盒,有两个授权密钥:

com.apple.security.device.audio-input
com.apple.security.device.microphone

我测试了两者,都允许麦克风输入。

它们有什么区别?

【问题讨论】:

【参考方案1】:

com.apple.security.device.microphone 是沙盒权利。如果您想在沙盒应用中使用麦克风,则需要启用它,

com.apple.security.device.audio-input 是强化的运行时权利。如果您想在使用强化运行时构建的应用中使用麦克风,则需要启用它。

如果您的应用同时经过沙盒和强化,您将需要同时启用两者。

在这种情况下,沙盒和强化提供了重叠的保护。

在沙盒应用中,如果您没有com.apple.security.device.microphone 权限,您的应用将无法访问麦克风。

在强化应用中,如果您没有com.apple.security.device.audio-input 权利,您的应用将无法使用 Core Audio 访问麦克风或任何音频输入,

This 很好地解释了沙盒和强化之间的关系。

我们可以在 Xcode 10 中看到 Hardened Runtime 的 Resource Access 部分与 App Sandbox 有大量重叠,而 Runtime Exceptions 部分具有强化运行时独有的功能。重叠的原因是什么?沙盒主要是为 App Store 设计的,而加固的运行时主要是为 Developer ID 设计的。我刚刚详细解释了这两种技术如何应用​​于同一个应用程序并且不依赖于分发方法,但在不久的将来,大多数应用程序可能最多会使用这两种技术中的一种:Mac App 的沙盒商店应用程序和经过公证的 Developer ID 应用程序的强化。这就是存在重复权利的原因。

【讨论】:

一个显而易见的问题:为什么同一事物有两个不同的名称?

以上是关于macOS 权利音频输入与麦克风的主要内容,如果未能解决你的问题,请参考以下文章

MacOS麦克风输入监听的方法

如何使用 Auriotouch 将麦克风的音频输入静音并仅识别设备的内部音频

将音频作为麦克风输入播放

惊人的音频引擎如何将过滤器应用于麦克风输入

从浏览器中的麦克风获取音频输入并提取特征

从麦克风输入中删除已知音频输出