iOS应用程序也要求麦克风访问,即使对于KaudioSessionCategory_Mediaplayback



我正在使用:https://github.com/alexbw/novocaine来播放WAV文件。我知道iOS有其自己的媒体播放器API,但其限制是在预设均衡器中。我需要使用NovoCaine,因为我正在使用NVDSP https://github.com/bartolsthoorn/nvdsp来实现10频段的图形均衡器。

苹果拒绝了我提交的应用程序,因为它要求麦克风访问,但它只是一个播放应用程序。他们说:

"麦克风同意请求是通过使用AvaudioSessionCategoryRecord或AvaudiosessionCategoryPlayAndRecord Audio类别生成的"

在novocaine.m中,我从

中修改了设置
UInt32 sessionCategory = kAudioSessionCategory_PlayAndRecord

对每个:

UInt32 sessionCategory = kAudioSessionCategory_MediaPlayback
UInt32 sessionCategory = kAudioSessionCategory_AmbientSound
UInt32 sessionCategory = kAudioSessionCategory_SoloAmbientSound

但是在上述每种情况下,应用程序仍然请求麦克风访问。

我搜索了所有代码,这是设置音频会话类别的唯一地方。

要测试,每次修改后,您必须在iPod上进行此操作:

设置 ->常规 ->重置 ->重置位置&隐私

否则测试无效。

i单脚在几乎所有的NovoCaine代码中都带有Xcode调试器,但是很难诊断,因为麦克风访问弹出弹出弹出弹出只有在显示视图时显示,但是,该检查的检查发生在很早的情况下。代码。

代码中是否有其他地方请求麦克风访问或影响麦克风访问作为副作用?

我使用的是iOS SDK 7.0的Xcode 5.0.2(5A3005),而我唯一的测试设备是iPod Touch第五代。

完整的荣誉归功于Github的DMT4U,但是,是的,他/她的解决方案对我有用!评论以下几行:

UInt32 one = 1;
CheckError( AudioUnitSetProperty(inputUnit,
kAudioOutputUnitPropertyEnableIO,
kAudioUnitScope_Input,
kInputBus,
&one,
sizeof(one)), "Couldn't enable IO on the input scope of output unit");

来源:https://github.com/alexbw/novocaine/issues/76

相关内容

  • 没有找到相关文章

最新更新