实时音视频

  • 实时音视频 > 使用指南 > Web >背景音乐/音效混音(新版)

    背景音乐/音效混音(新版)

    最近更新时间: 2022-12-01 17:43:17

    本部分介绍背景音乐混音功能的使用

    注意,自 SDK 4.2.0 版本开始,增加了新版本的背景音乐混音功能,本篇文档介绍新版本背景音乐混音的用法。如果想要查看旧版本背景音乐混音的用法,可以参考 背景音乐混音(旧版)

    背景音乐混音

    用户可在连麦过程中通过混音功能添加背景音乐,支持 MP3、AAC 等格式的本地或在线音乐,使用方式如下:

    创建 createAudioMusicMixer

    SDK 当前仅支持基于 QNMicrophoneAudioTrack 的混音功能,因此,可以通过 QNMicrophoneAudioTrack 创建 QNAudioMusicMixer 对象。

    const filePath = "/sdcard/music/example.mp3";
    const musicAudioMixer = mMicrophoneAudioTrack.createAudioMusicMixer(filePath)
    

    createAudioMusicMixer 不仅支持文件地址,同时还支持 AudioBuffer 与 File 类型。

    音乐控制

    在创建了 QNAudioMusicMixer 实例后,可以通过该实例提供的混音控制接口进行混音操作的控制,使用代码参考如下:

    // 开始混音,成功后会触发 QNAudioMusicMixerState.MIXING 状态的回调
    mAudioMixer.start();
    // 停止混音,成功后会触发 QNAudioMusicMixerState.STOPPED 状态的回调
    mAudioMixer.stop();
    // 恢复混音,成功后会触发 QNAudioMusicMixerState.MIXING 状态的回调
    mAudioMixer.resume();
    // 暂停混音,成功后会触发 QNAudioMusicMixerState.PAUSED 状态的回调
    mAudioMixer.pause();
    // 跳到指定位置进行混音,成功后回触发 QNAudioMusicMixerState.MIXING 状态的回调
    mAudioMixer.seekTo(positionMs);
    

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

    当前仅支持一个麦克风 track 混一路音频,重复针对同一个麦克风 track 创建不同的 QNAudioMusicMixer 并执行 start 操作,后面的会覆盖前面的,即以后执行 start 的音频混音控制器为准进行混音。

    多音效混音

    创建 createAudioEffectMixer

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

    const filePath = "/sdcard/music/example.mp3";
    const audioEffectMixer = mMicrophoneAudioTrack.createAudioEffectMixer()
    

    createAudioEffectMixer 不仅支持文件地址,同时还支持 AudioBuffer 与 File 类型。

    创建 QNAudioEffect

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

    const filePath = "/sdcard/effect.mp3";
    const effectID = "test";
    const audioEffect = mAudioEffectMixer.createAudioEffect(effectID, filePath);
    

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

    混音控制

    // 开始指定音效混音
    mAudioEffectMixer.start(audioEffect.getID());
    // 停止指定音效混音
    mAudioEffectMixer.stop(audioEffect.getID());
    // 恢复指定音效混音
    mAudioEffectMixer.resume(audioEffect.getID());
    // 暂停指定音效混音
    mAudioEffectMixer.pause(audioEffect.getID());
    // 停止所有正在混音的音效
    mAudioEffectMixer.stopAll();
    // 暂停所有正在混音的音效
    mAudioEffectMixer.pauseAll();
    // 恢复所有已经暂停混音的音效
    mAudioEffectMixer.resumeAll();
    

    音量控制

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

    参考代码如下:

    mMicrophoneAudioTrack.setVolume(0.5);                  // 设置麦克风采集(混音)音量
    mMicrophoneAudioTrack.setPlayingVolume(0.5);           // 设置混音后本地播放的音量
    mAudioEffectMixer.setVolume(audioEffect.getID(), 0.5); // 设置指定音效的混音音量
    mAudioEffectMixer.setAllEffectsVolume(0.5);            // 设置所有音效的混音音量
    mAudioMusicMixer.setMixingVolume(0.5);                 // 设置背景音乐的混音音量                    
    
    

    耳返

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

    mMicrophoneAudioTrack.setEarMonitorEnabled(true); // 开启返听
    

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

    以上内容是否对您有帮助?
  • Qvm free helper
    Close