【发布时间】:2021-07-13 05:25:24
【问题描述】:
一个新的 Delphi 10.4.2 macOS 项目尝试录制麦克风音频,但在弹出窗口中收到此错误消息:
“未经授权录制音频。”
Delphi 应用程序如何获得录制音频的授权?
我从空白项目开始,所以...
项目 |选项 |应用 |版本信息 |钥匙 NSMicrophoneUsageDescription 设置为默认字符串“访问麦克风的原因”
在 FMX.Media.AVFoundation 中引发了异常:
{$ELSEIF DEFINED(MACOS)}
if TOSVersion.Check(10, 14) and (TAVCaptureDevice.OCClass.authorizationStatusForMediaType(AVMediaTypeAudio) <> AVAuthorizationStatusAuthorized) then
raise ECaptureDeviceException.Create(SAudioCaptureUnauthorized);
{$ENDIF}
【问题讨论】:
-
“尝试录制麦克风音频”.. 使用哪个代码? “Delphi 应用程序如何获得录制音频的授权?”如果使用
TAVAudioCaptureDevice,它应该为您执行此操作,否则您需要自己调用TAVCaptureDevice.OCClass.requestAccessForMediaType(检查macOS 10.14 或更高版本),将AVMediaTypeAudio传递给mediaType -
将代码添加到问题中。
-
看来我弄错了它请求您的权限,并且您应该在
TAVAudioCaptureDevice实例上明确调用RequestPermission。您可以使用OnPermissionRequest事件来确定它是否被授予
标签: delphi audio delphi-10.4-sydney