如何以 Framework 方式集成 IMKit 的语音输入插件(IFly)?

描述

官方文档中 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

解决方案

  1. 前往 讯飞官网,申请账号并下载 iflyMSC.framework SDK。

  2. 下载 RongiFlyKit 源码,并进行编译。

  3. 将以下内容需要导入到项目中:

    • RongiFlyKit.framework:编译得到的融云语音输入SDK
    • RongCloudiFly.bundle:编译得到的语音输入功能的资源包
    • iflyMSC.framework:您自己的讯飞语音输入的 SDK

    请不要将融云源码编译后的 iflyMSC.framework 导入到项目中,因为科大讯飞的 Appkey 和 SDK 是绑定的,如果 appkey 和 SDK 不对应,会导致识别失败。

  4. 在 Build Settings 中 Other Linker Flags 添加 -ObjC 。

  5. 添加系统库:

    • AddressBook.framework
    • libz.tbd
    • SystemConfiguration.framework
    • CoreTelephony.framework
    • CoreServices.framework
    • Contacts.framework
  6. 在 IMKit 的 initWithAppkey 方法之后调用下面的方法,保证 IMKit 加载该模块的时候,使用正确的讯飞 App Key。

    [RCiFlyKit setiFlyAppKey:@"讯飞的 App Key"];
    

如有疑问,欢迎提交工单