我正在使用Novocaine库from:https://github.com/alexbw/novocaine来播放wav文件。我知道iOS有自己的媒体播放器API,但是它的限制是在预置均衡器中。我需要使用诺沃卡因,因为我正在使用NVDSP https://github.com/bartolsthoorn/NVDSP实现一个10波段的图形均衡器。
苹果拒绝了我提交的应用程序,因为它要求麦克风访问,但它只是一个播放应用程序。他们说:
麦克风同意请求是通过使用AVAudioSessionCategoryRecord或AVAudioSessionCategoryPlayAndRecord音频类别来生成的
在Novocaine.m中,我将setupAudio修改为
UInt32 sessionCategory = kAudioSessionCategory_PlayAndRecord其中每一项:
UInt32 sessionCategory = kAudioSessionCategory_MediaPlayback
UInt32 sessionCategory = kAudioSessionCategory_AmbientSound
UInt32 sessionCategory = kAudioSessionCategory_SoloAmbientSound但在上述每一种情况下,该应用程序仍然请求麦克风访问。
我搜索了所有的代码,这是唯一设置音频会话类别的地方。
要进行测试,每次修改之后,您必须在iPod上执行以下操作:
设置->通用->重置->重置位置和隐私
否则,测试无效。
我使用XCode调试器完成了几乎所有的Novocaine代码,但是很难诊断,因为麦克风访问弹出仅在视图显示时显示,然而,在代码中对其进行检查的时间要早得多。
在代码中是否有其他地方请求麦克风访问或影响麦克风访问作为副作用?
我使用的是XCode 5.0.2 (5A3005)和iOS SDK7.0,我唯一的测试设备是iPod Touch第5代。
发布于 2014-03-10 20:23:30
这完全归功于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://stackoverflow.com/questions/21337276
复制相似问题