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

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

#  QNAudioEffectMixer

最近更新时间: 2023-10-20 19:42:26

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

> 1\. 当前支持基于
> [QNMicrophoneAudioTrack](https://developer.qiniu.com/rtc/11928/QNAudioEffectMixer-
> iOS/8855/QNMicrophoneAudioTrack-iOS) 和
> [QNCustomAudioTrack](https://developer.qiniu.com/rtc/11928/QNAudioEffectMixer-
> iOS/8856/QNCustomAudioTrack-iOS) 的音效混音操作
>
> 2\. 注意调用的时机，加入房间并且成功发布后混音才会生效
>
> 3\. 通过
> [QNRTC.createAudioEffectMixer](https://developer.qiniu.com/rtc/11928/QNAudioEffectMixer-
> iOS/8834) 创建
> [QNAudioEffectMixer](https://developer.qiniu.com/rtc/11928/QNAudioEffectMixer-
> iOS/11928/QNAudioEffectMixer-iOS) 实例对象, 使用
> [audioTrack.addAudioFilter](https://developer.qiniu.com/rtc/11928/QNAudioEffectMixer-
> iOS/undefined) 将 effectMixer 对象添加到 audioTrack 中

Index

Core Methods

  * createAudioEffectWithEffectID
  * destroyAudioEffectWithEffectID
  * setPublishEnabled
  * isPublishEnabled
  * start
  * stop
  * pause
  * resume
  * getCurrentPosition
  * setEffectID
  * setVolume
  * getVolume
  * setAllEffectsVolume
  * stopAll
  * pauseAll
  * resumeAll

Core Methods

createAudioEffectWithEffectID

  * \- ([QNAudioEffect](https://developer.qiniu.com/rtc/11928/QNAudioEffectMixer-iOS/11927/QNAudioEffect-iOS) *)createAudioEffectWithEffectID:(int)effectID filePath:(NSString *)filePath;
  * 创建音效混音配置类实例

> 支持本地路径以及在线文件
>
> 音频格式支持 aac、mp3、mp4、wav、m4r、caf、ogg、opus、m4a、flac

> 每一路参与混音的音效都需要对应一个
> [QNAudioEffect](https://developer.qiniu.com/rtc/11928/QNAudioEffectMixer-
> iOS/11927/QNAudioEffect-iOS) 实例
>
> 音效 ID 作为音效标识符，请务必保证唯一

Parameters

    * effectID: int 

音效文件唯一标识符

    * filePath: NSString 

文件路径

Returns
[QNAudioEffect](https://developer.qiniu.com/rtc/11928/QNAudioEffectMixer-
iOS/11927/QNAudioEffect-iOS) 实例

destroyAudioEffectWithEffectID

  * \- (void)destroyAudioEffectWithEffectID:(int)effectID;
  * 销毁音效类

Parameters

    * effectID: int 

音效文件唯一标识符

setPublishEnabled

  * \- (void)setPublishEnabled:(BOOL)publishEnabled effectID:(int)effectID;
  * 设置某音效音频是否发布到远端

Parameters

    * publishEnabled: BOOL 

是否发布到远端

    * effectID: int 

音效唯一标识符

isPublishEnabled

  * \- (BOOL)isPublishEnabled:(int)effectID;
  * 获取某音效音频是否发布到远端

Parameters

    * effectID: int 

音效唯一标识符

Returns BOOL

start

  * \- (BOOL)start:(int)effectID;
  * 开始混音某音效

> 音效混音次数，通过
> [QNAudioEffect.setLoopCount](https://developer.qiniu.com/rtc/11928/QNAudioEffectMixer-
> iOS/11927) 设置混音次数
>
> 音效混音结束，会触发
> [QNAudioEffectMixerDelegate.didFinished](https://developer.qiniu.com/rtc/11928/QNAudioEffectMixer-
> iOS/11929) 回调
>
> 音效混音发生错误，会触发
> [QNAudioEffectMixerDelegate.didFailWithError](https://developer.qiniu.com/rtc/11928/QNAudioEffectMixer-
> iOS/11929) 回调

Parameters

    * effectID: int 

音效唯一标识符

Returns BOOL 接口是否调用成功

stop

  * \- (BOOL)stop:(int)effectID;
  * 停止混音某音效

Parameters

    * effectID: int 

音效唯一标识符

Returns BOOL 接口是否调用成功

pause

  * \- (BOOL)pause:(int)effectID;
  * 暂停混音某音效

Parameters

    * effectID: int 

音效唯一标识符

Returns BOOL 接口是否调用成功

resume

  * \- (BOOL)resume:(int)effectID;
  * 恢复混音某音效

Parameters

    * effectID: int 

音效唯一标识符

Returns BOOL 接口是否调用成功

getCurrentPosition

  * \- (int64_t)getCurrentPosition:(int)effectID;
  * 获取某音效当前位置

Parameters

    * effectID: int 

音效唯一标识符

Returns int64_t，单位 ms

setEffectID

  * \- (void)setEffectID:(int)effectID volume:(float)volume;
  * 设置某音效音量，音量范围 0～1.0

> 该接口已废弃，请使用
> [QNAudioEffectMixer.setVolume](https://developer.qiniu.com/rtc/11928/QNAudioEffectMixer-
> iOS/11928)

Parameters

    * effectID: int 

音效唯一标识符

    * volume: float 

音量大小

setVolume

  * \- (void)setVolume:(float)volume effectID:(int)effectID;
  * 设置某音效音量，音量范围 0～1.0

Parameters

    * volume: float 

音量大小

    * effectID: int 

音效唯一标识符

getVolume

  * \- (float)getVolume:(int)effectID;
  * 获取某音效音量

Parameters

    * effectID: int 

音效唯一标识符

Returns float，范围 0～1.0

setAllEffectsVolume

  * \- (void)setAllEffectsVolume:(float)volume;
  * 设置所有音效的音量，范围 0～1.0

Parameters

    * volume: float 

音量大小

stopAll

  * \- (BOOL)stopAll;
  * 停止混音所有音效

Returns BOOL 接口是否调用成功

pauseAll

  * \- (BOOL)pauseAll;
  * 暂停混音所有音效

Returns BOOL 接口是否调用成功

resumeAll

  * \- (BOOL)resumeAll;
  * 恢复混音所有音效

Returns BOOL 接口是否调用成功

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