首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iOS应用程序要求麦克风访问,甚至是kAudioSessionCategory_MediaPlayback

iOS应用程序要求麦克风访问,甚至是kAudioSessionCategory_MediaPlayback
EN

Stack Overflow用户
提问于 2014-01-24 16:10:30
回答 1查看 880关注 0票数 1

我正在使用Novocaine库from:https://github.com/alexbw/novocaine来播放wav文件。我知道iOS有自己的媒体播放器API,但是它的限制是在预置均衡器中。我需要使用诺沃卡因,因为我正在使用NVDSP https://github.com/bartolsthoorn/NVDSP实现一个10波段的图形均衡器。

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

麦克风同意请求是通过使用AVAudioSessionCategoryRecord或AVAudioSessionCategoryPlayAndRecord音频类别来生成的

在Novocaine.m中,我将setupAudio修改为

代码语言:javascript
复制
UInt32 sessionCategory = kAudioSessionCategory_PlayAndRecord

其中每一项:

代码语言:javascript
复制
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代。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-10 20:23:30

这完全归功于DMT4u,但是是的,他/她的解决方案对我有效!注释掉以下几行:

代码语言:javascript
复制
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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21337276

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档