如何处理这个错误AVAudioSessionErrorCodeMissingEntitlement



我正在尝试与iOS10的CallKit集成,但是当我试图在接受电话呼叫后初始化音频会话时,这个"AudioUnitInitialize"API将抛出此错误"AVAudioSessionErrorCodeMissingEntitlement"。根据这份文件,它只有一行解释:https://developer.apple.com/reference/avfoundation/avaudiosessionerrorcode/avaudiosessionerrorcodemissingentitlement

我应该如何更新授权来支持这个?有人有经验吗?

我在iOS10 Beta 6中也遇到了这个问题,并且能够通过将"AudioUnitInitialize" API从performAnswerCallAction:方法(如在SpeakerBox中实现的)移动到ProviderDelegate的init例程来解决这个问题。

通过将初始化移到ProviderDelegate生命周期的早期,以某种方式避免了"授权"问题。

我下载了苹果的Speakerbox示例应用程序来检查CallKit使用的授权和后台模式。

看起来他们添加了后台模式-> IP语音权限和"应用程序提供IP语音服务"键到应用程序的Info.plist:

<key>UIBackgroundModes</key>
<array>
    <string>voip</string>
</array>

还将INStartAudioCallIntent键添加到NSUserActivityTypes和以下麦克风使用说明:

<key>NSMicrophoneUsageDescription</key>
<string>$(PRODUCT_NAME) uses the Microphone for call audio</string>
<key>NSCallKitUsageDescription</key>
<string>$(PRODUCT_NAME) makes and receives calls</string>
<key>NSUserActivityTypes</key>
<array>
    <string>INStartAudioCallIntent</string>
</array>

相关内容

  • 没有找到相关文章

最新更新