human: 如何处理七牛云的实时音视频QNAudioEffectMixer

gpt: [实时音视频](https://developer.qiniu.com/rtc) > API 文档 > Android
>QNAudioEffectMixer

#  QNAudioEffectMixer

最近更新时间: 2023-08-17 15:22:46

音效混音控制类，提供了控制音效混音的一系列方法。

> 1\. 当前仅支持基于
> [QNMicrophoneAudioTrack](https://developer.qiniu.com/rtc/11923/QNAudioEffectMixer/8667/QNMicrophoneAudioTrack)
> 的音效混音操作
>
> 2\. 混音需要加入房间并且成功发布后才会生效，因此，需要注意调用的时机

Index

Core Methods

  * createAudioEffect
  * start
  * setPublishEnabled
  * isPublishEnabled
  * stop
  * pause
  * resume
  * stopAll
  * pauseAll
  * resumeAll
  * getCurrentPosition
  * setVolume
  * getVolume
  * setAllEffectsVolume

Core Methods

createAudioEffect

  * [QNAudioEffect](https://developer.qiniu.com/rtc/11923/QNAudioEffectMixer/11922/QNAudioEffect) createAudioEffect(int effectID, String filePath);
  * 创建音效混音配置类实例，每一路参与混音的音效都需要对应一个 [QNAudioEffect](https://developer.qiniu.com/rtc/11923/QNAudioEffectMixer/11922/QNAudioEffect) 实例

> 支持本地和在线文件，支持的文件格式为：aac、mp3、mp4、ogg、opus、wav、m4a、flac

Parameters

    * effectID: int 

音效文件的唯一标识符，需自行生成并维护，且确保唯一

    * filePath: String 

音效文件地址，支持本地文件和在线文件

Returns 音效混音实例

start

  * boolean start(int effectID)
  * 开始音效混音

混音的次数可以通过
[QNAudioEffect.setLoopCount](https://developer.qiniu.com/rtc/11923/QNAudioEffectMixer/11922)
接口配置

音效混音结束时会触发
[QNAudioEffectMixerListener.onEffectFinished](https://developer.qiniu.com/rtc/11923/QNAudioEffectMixer/11924)
回调

音效混音出错会触发
[QNAudioEffectMixerListener.onEffectError](https://developer.qiniu.com/rtc/11923/QNAudioEffectMixer/11924)
回调

Parameters

    * effectID: int 

音效文件的唯一标识符

Returns 接口是否调用成功

setPublishEnabled

  * void setPublishEnabled(int effectID, boolean enabled)
  * 设置是否推送到远端，默认推送

Parameters

    * effectID: int 

音效文件的唯一标识符

    * enabled: boolean 

false: 只在本地播放音效，true: 将本地播放的音效发布至远端

isPublishEnabled

  * boolean isPublishEnabled(int effectID)
  * 是否推送到远端

Parameters

    * effectID: int 

音效文件的唯一标识符

Returns false: 只在本地播放音效， true: 将本地播放的音效发布至远端

stop

  * boolean stop(int effectID)
  * 停止音效混音

Parameters

    * effectID: int 

音效文件的唯一标识符

Returns 接口是否调用成功

pause

  * boolean pause(int effectID)
  * 暂停音效混音

Parameters

    * effectID: int 

音效文件的唯一标识符

Returns 接口是否调用成功

resume

  * boolean resume(int effectID)
  * 恢复音效混音

Parameters

    * effectID: int 

音效文件的唯一标识符

Returns 接口是否调用成功

stopAll

  * boolean stopAll()
  * 停止所有正在混音的音效

Returns 接口是否调用成功

pauseAll

  * boolean pauseAll()
  * 暂停所有正在混音的音效

Returns 接口是否调用成功

resumeAll

  * boolean resumeAll()
  * 恢复所有暂停混音的音效

Returns 接口是否调用成功

getCurrentPosition

  * long getCurrentPosition(int effectID)
  * 获取指定音效混音的位置，单位: ms

Parameters

    * effectID: int 

音效文件的唯一标识符

Returns 指定音效混音的位置，单位: ms

setVolume

  * void setVolume(int effectID, float volume)
  * 设置指定音效的混音音量，默认音量为 1.0f

> 若想修改混音中麦克风采集音频的音量，可通过
> [QNMicrophoneAudioTrack.setVolume](https://developer.qiniu.com/rtc/11923/QNAudioEffectMixer/8667)
> 接口实现

Parameters

    * effectID: int 

音效文件的唯一标识符

    * volume: float 

音效的混音音量，[0.0f - 1.0f]

getVolume

  * float getVolume(int effectID)
  * 获取指定音效的混音音量

Parameters

    * effectID: int 

音效文件的唯一标识符

Returns 指定音效的混音音量，[0.0f - 1.0f]

setAllEffectsVolume

  * void setAllEffectsVolume(float volume)
  * 设置所有正在混音的音效的混音音量

Parameters

    * volume: float 

音效的混音音量，[0.0f - 1.0f]

以上内容是否对您有帮助？