实时音视频

  • 实时音视频 > 使用指南 > iOS >多音效混音

    多音效混音

    最近更新时间:2022-06-17 10:09:59

    本文主要介绍连麦过程中添加多重音效混音的使用场景。

    • 音效混音支持本地文件和在线文件,支持的音频格式为:aac、mp3、mp4、wav、m4r、caf、ogg、opus、m4a、flac
    • 请尽量使用本地音乐文件,避免因为网络资源的异常导致的混音卡顿等情况

    使用方式如下:

    创建 QNAudioEffectMixer

    SDK 当前仅支持基于 QNMicrophoneAudioTrack 的多重音效混音功能,可以通过 QNMicrophoneAudioTrack.createAudioEffectMixer 接口来创建 QNAudioEffectMixer 对象

    QNAudioEffectMixer *audioEffectMixer = [microphoneAudioTrack createAudioEffectMixer:self];
    

    其中,QNAudioEffectMixerDelegate 为音效混音代理回调,回调方法定义如下:

    /*!
     * @abstract 音效混音发生错误的回调
     *
     * @param audioEffectMixer 音效混音实例
     *
     * @param error 错误
     *
     * @since v5.1.0
     */
    - (void)audioEffectMixer:(QNAudioEffectMixer *)audioEffectMixer didFailWithError:(NSError *)error;
    
    /*!
     * @abstract 音效混音某音效播放完成的回调
     *
     * @param audioEffectMixer 音效混音实例
     *
     * @param effectID 音效 ID
     *
     * @since v5.1.0
     */
    - (void)audioEffectMixer:(QNAudioEffectMixer *)audioEffectMixer didFinished:(int)effectID;
    

    其中,混音场景下的错误码可参考混音相关错误码

    创建 QNAudioEffect

    QNAudioEffect 为音效文件的配置类,可通过 QNAudioEffectMixer.createAudioEffect 接口进行创建,每一个音效文件都需对应一个 QNAudioEffect 实例,使用代码参考如下:

    NSString *filePath = [[NSBundle mainBundle] pathForResource:@"effect" ofType:@"mp3"];
    QNAudioEffect *audioEffect = [audioEffectMixer createAudioEffect:effectID  filePath:filePath];
    

    其中,effectID 为音效文件的唯一标识符,可自行生成并维护,该标识符为控制一系列音效混音操作的依据,需保证唯一。

    混音控制

    在创建了 QNAudioEffectMixer 音效混音控制器实例和 QNAudioEffect 音效文件实例后,可以通过如下接口进行音效混音操作的控制。

    使用代码参考如下:

    int effectID = [audioEffect getID];
    // 开始指定音效混音
    [audioEffectMixer start:effectID];
    // 停止指定音效混音
    [audioEffectMixer stop:effectID];
    // 恢复指定音效混音
    [audioEffectMixer resume:effectID];
    // 暂停指定音效混音
    [audioEffectMixer pause:effectID];
    // 停止所有正在混音的音效
    [audioEffectMixer stopAll];
    // 暂停所有正在混音的音效
    [audioEffectMixer pauseAll];
    // 恢复所有已经暂停混音的音效
    [audioEffectMixer resumeAll];
    

    上述为混音基本流程的控制,更多控制方式请参考 QNAudioEffectMixer

    音量控制

    混音场景下,主要包含三种音量设置:麦克风混音音量音效混音音量本地播放音量。三种音量的设置方式参考如下:

    参考代码如下:

    [microphoneAudioTrack setVolume:0.5];                   // 设置麦克风采集(混音)音量
    [microphoneAudioTrack setPlayingVolume:0.5];            // 设置混音后本地播放的音量
    int effectID = [audioEffect getID];
    [audioEffectMixer setEffectID:effectID volume:0.5];     // 设置指定音效的混音音量
    [audioEffectMixer setAllEffectsVolume:0.5];             // 设置所有音效的混音音量
    

    返听

    若您在混音场景下,有开启返听的需要,则可以通过 QNMicrophoneAudioTrack.setEarMonitorEnabled 接口进行开启,参考代码如下:

    [microphoneAudioTrack setEarMonitorEnabled:YES]; // 开启返听
    

    为达到最佳体验,建议在佩戴耳机的情况下使用该功能

    注意事项

    1. 混音功能会将混音音频与当前已发布的音频 Track 数据混合并推送出去,若当前的音频 Track 尚未发布,则混音操作将失效。
    2. 混音功能建议在佩戴耳机的情况下使用以获得更好的体验。
    以上内容是否对您有帮助?
  • Qvm free helper
    Close