首页 > 解决方案 > Delphi MacOS 项目出现错误“未经授权录制音频”

问题描述

一个新的 Delphi 10.4.2 macOS 项目尝试录制麦克风音频,但在弹出窗口中收到以下错误消息:

“未经授权录制音频。”

Delphi 应用程序如何获得录制音频的授权?

我从空白项目开始,所以......

项目 | 选项 | 应用 | 版本信息 | Key NSMicrophoneUsageDescription 设置为默认字符串“访问麦克风的原因”

FMX.Media.AVFoundation 中提出了异常:

    {$ELSEIF DEFINED(MACOS)}
  if TOSVersion.Check(10, 14) and (TAVCaptureDevice.OCClass.authorizationStatusForMediaType(AVMediaTypeAudio) <> AVAuthorizationStatusAuthorized) then
    raise ECaptureDeviceException.Create(SAudioCaptureUnauthorized);
{$ENDIF}

标签: delphiaudiodelphi-10.4-sydney

解决方案


添加对 RequestPermission 的调用有效。

procedure TForm1.FormCreate(Sender: TObject);
begin
  fMic := TCaptureDeviceManager.Current.DefaultAudioCaptureDevice;

  {$IFDEF MACOS}
  fMic.RequestPermission;
  {$ENDIF}
end;


推荐阅读