delphi - 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}
解决方案
添加对 RequestPermission 的调用有效。
procedure TForm1.FormCreate(Sender: TObject);
begin
fMic := TCaptureDeviceManager.Current.DefaultAudioCaptureDevice;
{$IFDEF MACOS}
fMic.RequestPermission;
{$ENDIF}
end;
推荐阅读
- c# - Http Client 没有返回任何值,也没有移动另一行代码
- php - 如何根据 echo 单选按钮将此单选按钮值保存到 SQL 数据库
- ios - Flutter 致命错误:找不到“Flutter/Flutter.h”文件
- firebase - 如何修复flutter项目中的gradle错误
- asp.net-core - 无法加载文件或程序集“Microsoft.Extensions.Options,版本=5.0.0.0,文化=中性,PublicKeyToken=adb9793829ddae60
- python - 错误:没有为 scipy==1.7.1 找到匹配的分布
- node.js - Passport js Google Ouath2 范围
- typescript - 使用 3rd-party API 时如何为 Axios.get 编写 TypeScript 类型
- css - text-decoration:line-through 在 Angular 11 中无法与类绑定一起正常工作
- c# - 从 Nuget 包中排除类