【问题标题】:Delphi MacOS request permission to use microphoneDelphi MacOS 请求使用麦克风的权限
【发布时间】:2022-01-14 13:47:11
【问题描述】:

MacOS 上的 Delphi 11 项目正在使用此代码请求权限:

procedure TCOWMainForm.Button1Click(Sender: TObject);
var
  fMic: FMX.Media.TAudioCaptureDevice;
begin
  fMic := TAVCaptureDeviceManager.Current.DefaultAudioCaptureDevice;
  if (fMic <> nil) then
  begin
    ShowMessage('fMic not nil so calling fMic.RequestPermission');
    fMic.RequestPermission;
  end;
end;

Project | Options | Version Info 包括一个密钥对 NSMicrophoneUsageDescription "COW records your voice."

不过,根据 Apple 文档,该项目在调用 fMic.RequestPermission 时被终止:

Requesting Authorization for Media Capture on macOS

在尝试获得在 macOS 公证应用中使用麦克风的许可时,我可能会遗漏什么?

已编辑以包含此 Embarcadero RSP,该 RSP 具有重现该问题的最小项目。

https://quality.embarcadero.com/browse/RSP-36541

【问题讨论】:

  • 你提供的代码对我有用。
  • 我认为它必须与 NSMicrophoneUsageDescription 密钥对有关,或者它的密钥无法进入权利 plist。有没有办法在经过公证的应用程序中检查产生的权利?
  • @DaveNottage 感谢您对此进行检查。我已经使用 Show Package Contents 打开了经过公证的应用程序,Info.plist 显示了 NSMicrophoneUsageDescription 键及其字符串。
  • @DaveNottage 我正在仔细检查。我的代码在正常部署时运行良好。完全相同的项目在经过公证后会在请求许可后立即崩溃。那么,当您说代码适合您时,您是否运行了经过公证的版本?

标签: delphi firemonkey delphi-11-alexandria


【解决方案1】:

感谢@DaveNottage,看起来经过公证的 Delphi 应用程序需要的不仅仅是 Info.plist 中的 NSMicrophoneUsageDescription 密钥对。

该项目还需要Project | Options | Application | Entitlement List | Audio Input被勾选为True。

【讨论】:

    猜你喜欢
    • 2021-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-14
    • 2013-06-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多