描述
官方文档中 IMKit 的语音输入插件(IFly)仅提供了源码集成方式。在以 Framework 方式集成 IMKit 时,您需要自行编译语音输入插件(IFly)为 Framework。
分析
IMKit 的语音输入插件(IFly)基于讯飞付费服务开发,依赖于讯飞的 iflyMSC.framework
语音库 SDK。 由于讯飞的 App Key 和 iflyMSC.framework
是强绑定关系,所以融云无法直接提供 IMKit 的语音输入插件(IFly)的 Framework 供 App 集成。
App 集成时必须替换 iflyMSC.framework
。
语音插件(IFly)仅支持以源码方式导入。如需使用语音插件,必须同样以源码方式集成 IMKit SDK。参见导入SDK。
解决方案
-
前往 讯飞官网,申请账号并下载
iflyMSC.framework
SDK。 -
下载 RongiFlyKit 源码,并进行编译。
-
将以下内容需要导入到项目中:
RongiFlyKit.framework
:编译得到的融云语音输入SDKRongCloudiFly.bundle
:编译得到的语音输入功能的资源包iflyMSC.framework
:您自己的讯飞语音输入的 SDK
请不要将融云源码编译后的 iflyMSC.framework 导入到项目中,因为科大讯飞的 Appkey 和 SDK 是绑定的,如果 appkey 和 SDK 不对应,会导致识别失败。
-
在 Build Settings 中 Other Linker Flags 添加 -ObjC 。
-
添加系统库:
- AddressBook.framework
- libz.tbd
- SystemConfiguration.framework
- CoreTelephony.framework
- CoreServices.framework
- Contacts.framework
-
在 IMKit 的
initWithAppkey
方法之后调用下面的方法,保证 IMKit 加载该模块的时候,使用正确的讯飞 App Key。[RCiFlyKit setiFlyAppKey:@"讯飞的 App Key"];
如有疑问,欢迎提交工单。