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

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

#  QNAudioMusicMixer

最近更新时间: 2022-11-24 18:23:58

背景音乐混音控制类，提供了控制背景音乐混音一系列方法。

> 1\. 当前仅支持基于
> [QNMicrophoneAudioTrack](https://developer.qiniu.com/rtc/11921/QNAudioMusicMixer/8667/QNMicrophoneAudioTrack)
> 的背景音乐混音操作
>
> 2\. 混音需要加入房间并且成功发布后才会生效，因此，需要注意调用的时机
>
> 3\. 背景音乐混音仅支持同时混合一路背景音乐，若需要切换背景音乐，重新调用
> [QNMicrophoneAudioTrack.createAudioMusicMixer](https://developer.qiniu.com/rtc/11921/QNAudioMusicMixer/8667)
> 创建本类的实例即可
>
> 4\.
> 若您希望在混合背景音乐的同时添加音效，可参考音效混音接口([QNAudioEffectMixer](https://developer.qiniu.com/rtc/11921/QNAudioMusicMixer/11923/QNAudioEffectMixer))

Index

Core Methods

  * setPublishEnabled
  * isPublishEnabled
  * getDuration
  * start[1/2]
  * start[2/2]
  * stop
  * resume
  * pause
  * getCurrentPosition
  * seekTo
  * setMixingVolume
  * getMixingVolume
  * setMusicVolume
  * getMusicVolume
  * setStartPosition
  * getStartPosition

Core Methods

setPublishEnabled

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

Parameters

    * enabled: boolean 

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

isPublishEnabled

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

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

getDuration

  * static long getDuration(String filePath)
  * 获取指定音频文件的总时长，单位：ms

> 该接口为同步方法，对于在线音频文件，获取时长会存在一定的耗时，需注意调用接口所在的线程

Returns 音频文件总时长，单位：ms

start[1/2]

  * void start()
  * 开始混音并播放，音频只混一次，不做循环混音操作

混音开始后会触发
[QNAudioMusicMixerListener.onStateChanged](https://developer.qiniu.com/rtc/11921/QNAudioMusicMixer/11919)
回调，并回调
[QNAudioMusicMixerState.MIXING](https://developer.qiniu.com/rtc/11921/QNAudioMusicMixer/11920)
状态

混音过程中会回调
[QNAudioMusicMixerListener.onMixing](https://developer.qiniu.com/rtc/11921/QNAudioMusicMixer/11919)
方法

start[2/2]

  * void start(int loopCount)
  * 开始指定次数的混音并播放

混音开始后会触发
[QNAudioMusicMixerListener.onStateChanged](https://developer.qiniu.com/rtc/11921/QNAudioMusicMixer/11919)
回调，并回调
[QNAudioMusicMixerState.MIXING](https://developer.qiniu.com/rtc/11921/QNAudioMusicMixer/11920)
状态

混音过程中会回调
[QNAudioMusicMixerListener.onMixing](https://developer.qiniu.com/rtc/11921/QNAudioMusicMixer/11919)
方法

Parameters

    * loopCount: int 

混音次数，-1 为无限循环，0 则不做混音，其他则为指定次数的混音

stop

  * void stop()
  * 停止混音操作

混音停止后会触发
[QNAudioMusicMixerListener.onStateChanged](https://developer.qiniu.com/rtc/11921/QNAudioMusicMixer/11919)
回调，并回调
[QNAudioMusicMixerState.STOPPED](https://developer.qiniu.com/rtc/11921/QNAudioMusicMixer/11920)
状态

resume

  * void resume()
  * 恢复混音操作

混音恢复后会触发
[QNAudioMusicMixerListener.onStateChanged](https://developer.qiniu.com/rtc/11921/QNAudioMusicMixer/11919)
回调，并回调
[QNAudioMusicMixerState.MIXING](https://developer.qiniu.com/rtc/11921/QNAudioMusicMixer/11920)
状态

pause

  * void pause()
  * 暂停混音操作

混音暂停后会触发
[QNAudioMusicMixerListener.onStateChanged](https://developer.qiniu.com/rtc/11921/QNAudioMusicMixer/11919)
回调，并回调
[QNAudioMusicMixerState.PAUSED](https://developer.qiniu.com/rtc/11921/QNAudioMusicMixer/11920)
状态

getCurrentPosition

  * long getCurrentPosition()
  * 获取当前音频混音的位置，单位: ms

Returns 当前音频混音的位置，单位: ms

seekTo

  * void seekTo(long position)
  * 跳到指定位置混音

成功跳到指定位置混音后会触发
[QNAudioMusicMixerListener.onStateChanged](https://developer.qiniu.com/rtc/11921/QNAudioMusicMixer/11919)
回调，并回调
[QNAudioMusicMixerState.MIXING](https://developer.qiniu.com/rtc/11921/QNAudioMusicMixer/11920)
状态

Parameters

    * position: long 

指定位置的时间戳，单位: ms

setMixingVolume

  * void setMixingVolume(float musicVolume)
  * 设置背景音乐的混音音量，默认音量为 1.0f

> 该接口已废弃，请使用 setMusicVolume

Parameters

    * musicVolume: float 

背景音乐混音音量，[0.0f - 1.0f]

getMixingVolume

  * float getMixingVolume()
  * 该接口已废弃，请使用 getMusicVolume

Returns 背景音乐混音的音量，[0.0f - 1.0f]

setMusicVolume

  * void setMusicVolume(float musicVolume)
  * 设置背景音乐的混音音量，默认音量为 1.0f

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

Parameters

    * musicVolume: float 

背景音乐混音音量，[0.0f - 1.0f]

getMusicVolume

  * float getMusicVolume()
  * 获取背景音乐混音的音量

Returns 背景音乐混音的音量，[0.0f - 1.0f]

setStartPosition

  * void setStartPosition(long position)
  * 设置背景音乐混音的起始位置，起始位置的有效值为 0 - duration 之间的值

Parameters

    * position: long 

背景音乐混音的起始位置，单位：ms

getStartPosition

  * long getStartPosition()
  * 获取背景音乐混音的起始位置

Returns 背景音乐混音的起始位置，单位：ms

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