跳到主要内容

美声特效

融云 RTCLib SDK 以插件库的形式(RongVoiceBeautifier)提供了多种美声特效选项。本插件会对麦克风采集的数据和耳返数据进行处理,本地与远端用户均会听到处理后的效果。

提示

CallKit、CallLib、RTCLib 从 5.1.6 版本开始,支持美声插件。

集成美声插件

在导入 SDK 前,您可以前往 融云官网 SDK 下载页面 确认当前最新版本号。

通过 CocoaPods 管理依赖 (推荐)

  1. 如果您的项目中没有 Podfile 文件,您需要打开终端并进入到项目的根目录,在终端中运行 pod init 命令,之后系统会自动创建一个默认的 Podfile 文件,在项目中的 Podfile 文件中添加如下内容:

    ruby
    pod 'RongCloudRTC/RongVoiceBeautifier', '~> x.y.z'
    提示
    • 美声插件会自动依赖下载对应版本的 RTCLib 库,一般不需要手动指定。
    • x.y.z 代表 RTCLib 具体的版本号,您可以在融云官网 SDK 下载页面或在终端中通过先执行 pod repo update,再执行 pod search RongCloudRTC 命令在 CocoaPods 仓库查询 RTCLib 最新的版本。
  2. 打开终端并进入到 Podfile 文件所在的目录,在终端中运行以下命令:

    shell
    pod install
    提示

    如果终端中出现类似 CocoaPods could not find compatible versions for 等找不到相关版本的报错,可先在终端中执行 pod repo update 命令,再执行 pod install 命令。

  3. 通过 Xcode 打开项目目录下的 xcworkspace 文件加载工程。

手动集成

  1. 前往 融云官网 SDK 下载页面,下载美声特效库:

  2. 导入以下内容:

    • RongVoiceBeautifier.bundle
    • RongVoiceBeautifier.framework
  3. 修改您的项目配置。在 GeneralFrameworks, Libraries, and Embedded Binaries 中,将手动导入的美声特效 SDK 所有的 Framework 全部改为 Embed & Sign

  4. 请将工程中 Target > Build Settings > Other Linker Flags 在此项中添加 -ObjC。为避免编译失败,请勿使用 -all_load-force_load

  5. 请务必确保资源包 RongVoiceBeautifier.bundle 正确添加到项目中,否则美声特效不会生效。

使用美声插件

RongCloudRTC 升级到 5.1.6 及以后版本,在需要美声功能的文件中导入美声特效插件头文件:

Objective C
#import <RongVoiceBeautifier/RCRTCVoiceBeautifierEngine.h>

设置美声特效

确保在设置美声特效之前已经初始化 RCRTCEngine 引擎。

  1. 使用 RCRTCVoiceBeautifierEngine 单例的 setPreset 方法设置美声特效。RCVoiceBeautifierType 定义了预设的音效。例如,设置为男孩音效(RCVoiceBeautifierTypeEffectBoy)。

    Objective C
    // 设置美声特效
    [[RCRTCVoiceBeautifierEngine sharedInstance] setPreset:RCVoiceBeautifierTypeEffectBoy];
  2. 使用 RCRTCVoiceBeautifierEngine 单例的 enable 方法设置声音特效是否启用。通过返回值可判断是否成功启用,返回 0 表示 成功,返回 -1 表示失败。

    Objective C
    // 设置美声特效是否开启
    BOOL success = [[RCRTCVoiceBeautifierEngine sharedInstance] enable:YES];
  3. 检查美声特效是否已启用。

    Objective C
    BOOL enabled = [[RCRTCVoiceBeautifierEngine sharedInstance] isEnable];

取消美声特效

设置美声特效后,会在当前客户端持续生效。如有需要,可在切换房间时修改、重置美声效果,或直接关闭美声特效功能。

提示

因为 RCRTCVoiceBeautifierEngine 类是单例对象,所以会保留开发者设置的声音特效参数。

Objective C
// 退出房间时重置美声特效为使用原声
[[RCRTCVoiceBeautifierEngine sharedInstance] setPreset:RCVoiceBeautifierTypeNone];

预置美声特效

RCVoiceBeautifierType 定义了预设的音效效果,提供美声、变声、混响三类效果。

声音类型特效类别说明
RCVoiceBeautifierTypeNone原声关闭美声
RCVoiceBeautifierTypeAcousticsFull美声饱满
RCVoiceBeautifierTypeAcousticsLow美声低沉
RCVoiceBeautifierTypeAcousticsHyperactivity美声高亢
RCVoiceBeautifierTypeMagnetic美声磁性(男)(SDK ≧ 5.4.1)
RCVoiceBeautifierTypeFresh美声清新(女) (SDK ≧ 5.4.1)
RCVoiceBeautifierTypeVitality美声活力(女) (SDK ≧ 5.4.1)
RCVoiceBeautifierTypeMellow美声圆润 (SDK ≧ 5.4.1)
RCVoiceBeautifierTypeClear美声清澈 (SDK ≧ 5.4.1)
RCVoiceBeautifierTypeRinging美声嘹亮 (SDK ≧ 5.4.1)
RCVoiceBeautifierTypeVigorous美声浑厚 (SDK ≧ 5.4.1)
RCVoiceBeautifierTypeEffectFalsetto变声假声
RCVoiceBeautifierTypeEffectBoy变声小男孩
RCVoiceBeautifierTypeEffectBoyToMan变声男孩转中年
RCVoiceBeautifierTypeEffectOldMan变声老年人
RCVoiceBeautifierTypeEffectGirl变声小女孩
RCVoiceBeautifierTypeSister变声小姐姐 (SDK ≧ 5.4.1)
RCVoiceBeautifierTypeEffectGirlToWoman变声女孩转中年
RCVoiceBeautifierTypePigKing变声猪八戒 (SDK ≧ 5.4.1)
RCVoiceBeautifierTypeEffectHulk变声绿巨人
RCVoiceBeautifierTypeAcousticsKTV混响KTV
RCVoiceBeautifierTypeAcousticsVocalConcert混响演唱会
RCVoiceBeautifierTypeEffectStudio混响录音棚 (SDK ≧ 5.4.1)
RCVoiceBeautifierTypeEffectPhonograph混响留声机 (SDK ≧ 5.4.1)
RCVoiceBeautifierTypeEffectStereo混响立体声 (SDK ≧ 5.4.1)
RCVoiceBeautifierTypeEffectValley混响空旷 (SDK ≧ 5.4.1)
RCVoiceBeautifierTypeEffectLobby混响3D 环绕 (SDK ≧ 5.4.1)

性能与功耗

美声特效插件 RCRTCVoiceBeautifier.framework 自身包体积为 37.7M。添加美声特效插件后:

  • CPU 消耗增加 5% 左右。
  • Memory 消耗增加 3M 左右。
  • 打包应用包体积增加 13.6M 左右。