gpt4 book ai didi

ios - AudioUnitInitialize 导致 iOS 模拟器上出现 Allow Microphone access 提示

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:28:06 26 4
gpt4 key购买 nike

我正在使用 AudioUnit 从 TeamSpeak 服务器播放音频,但是当我在 iOS 模拟器上调用 AudioUnitInitialize 时,我不断收到 macOS 提示以允许麦克风即使我只想播放也可以访问。

enter image description here

在真实设备上一切正常,没有任何 native 提示,但在模拟器中运行应用程序时真的很烦人,因为每次运行应用程序时都会出现此提示。

- (void)setupRemoteIO
{
AudioUnit audioUnit;
// Describe audio component
AudioComponentDescription desc;
desc.componentType = kAudioUnitType_Output;
desc.componentSubType = kAudioUnitSubType_RemoteIO;
desc.componentFlags = 0;
desc.componentFlagsMask = 0;
desc.componentManufacturer = kAudioUnitManufacturer_Apple;

// Get component
AudioComponent inputComponent = AudioComponentFindNext(NULL, &desc);

// Get audio unit
OSStatus status = AudioComponentInstanceNew(inputComponent, &audioUnit);
if (status != noErr)
{
printf("AudioIO could not create new audio component: status = %i\n", status);
}

UInt32 enableIO;
AudioUnitElement inputBus = 1;
AudioUnitElement outputBus = 0;
//Disabling IO for recording
enableIO = 0;

AudioUnitSetProperty(audioUnit, kAudioOutputUnitProperty_EnableIO, kAudioUnitScope_Input, inputBus, &enableIO, sizeof(enableIO));

//Enabling IO for playback
enableIO = 1;
AudioUnitSetProperty(audioUnit, kAudioOutputUnitProperty_EnableIO, kAudioUnitScope_Output, outputBus, &enableIO, sizeof(enableIO));

// initialize
status = AudioUnitInitialize(audioUnit);
if (status != noErr)
{
printf("AudioIO could not initialize audio unit: status = %i\n", status);
}
}

最佳答案

这是来自 macOS Mojave 的 Xcode(10.2 之前的版本)的一个已知错误(我说已知是因为我在播放视频时经常遇到这种情况,但也因为当我寻找它时,我发现很多人有同样的问题);虽然我找不到苹果的任何报告。根据环境、启动应用程序的方式、Xcode 版本和您拥有的 macOS Mojave 版本,可能会有一些解决方法。

这只会发生在模拟器中,正如您所说,它不会发生在真实设备上,因为大多数应用不需要麦克风访问权限来播放音频/视频功能。

在解决这个bug的同时,你可以试试:

  1. 前往 macOS 上的“安全与隐私”设置

  2. 左侧面板上的“麦克风”

  3. 然后在右侧面板上禁用 Xcode 选项

disable microphone

您可以尝试摆脱该消息的另一件事是将硬件音频输入更改为内部麦克风:

Hardware Audio Input

Xcode 10.2 更新:

You’re now only prompted once to authorize microphone access to all simulator devices. (45715977)

关于ios - AudioUnitInitialize 导致 iOS 模拟器上出现 Allow Microphone access 提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55198366/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com