实时音视频

  • 实时音视频 > API 文档 > iOS >QNAudioSourceMixer

    QNAudioSourceMixer

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

    音源混音类,提供了控制 PCM 裸数据混音的一系列方法。

    1. 当前支持基于 QNMicrophoneAudioTrackQNCustomAudioTrack 的音源混音操作

    2. 注意调用的时机,加入房间并且成功发布后混音才会生效

    3. 通过 QNRTC.createAudioSourceMixer 创建 QNAudioSourceMixer 实例对象, 使用 audioTrack.addAudioFilter 将 sourceMixer 对象添加到 audioTrack 中

    Index
    Core Methods
    Core Methods
    createAudioSourceWithSourceID[1/3]
    • - (QNAudioSource *)createAudioSourceWithSourceID:(int)sourceID
    • 创建音源混音配置类实例,默认小端、关闭阻塞模式

      每一路参与混音的音源都需要对应一个 QNAudioSource 实例

      音源 ID 作为音源标识符,请务必保证唯一

      Parameters
      • sourceID: int

        音源文件唯一标识符

      • filePath: NSString

        文件路径

      Returns QNAudioSource 实例
    createAudioSourceWithSourceID[2/3]
    • - (QNAudioSource *)createAudioSourceWithSourceID:(int)sourceID blockingMode:(BOOL)blockingMode;
    • 创建音源混音配置类实例,默认小端

      当外部送入 PCM 数据进行混音时,可以使用:

      1. 阻塞模式,此时外部数据可以持续送入 SDK,当 SDK 缓存的待混音数据过多时,会阻塞 QNAudioSourceMixer.pushAudioBuffer 接口,直到缓存数据被 SDK 混音使用,

      2. 非阻塞模式,此时外部数据需要按每次送入音频数据的时长,按这个时长的间隔来依次送入;也可以使用播放器的回调来送入 SDK;如果送入过快,则 SDK 会丢弃过多的数据。

      每一路参与混音的音源都需要对应一个 QNAudioSource 实例

      音源 ID 作为音源标识符,请务必保证唯一

      Parameters
      • sourceID: int

        音源文件唯一标识符

      • blockingMode: BOOL

        阻塞模式

      Returns QNAudioSource 实例
    createAudioSourceWithSourceID[3/3]
    • - (QNAudioSource *)createAudioSourceWithSourceID:(int)sourceID bigEndian:(BOOL)bigEndian blockingMode:(BOOL)blockingMode;
    • 创建音源混音配置类实例

      当外部送入 PCM 数据进行混音时,可以使用:

      1. 阻塞模式,此时外部数据可以持续送入 SDK,当 SDK 缓存的待混音数据过多时,会阻塞 QNAudioSourceMixer.pushAudioBuffer 接口,直到缓存数据被 SDK 混音使用,

      2. 非阻塞模式,此时外部数据需要按每次送入音频数据的时长,按这个时长的间隔来依次送入;也可以使用播放器的回调来送入 SDK;如果送入过快,则 SDK 会丢弃过多的数据。

      每一路参与混音的音源都需要对应一个 QNAudioSource 实例

      音源 ID 作为音源标识符,请务必保证唯一

      Parameters
      • sourceID: int

        音源文件唯一标识符

      • bigEndian: BOOL

        是否是大端

      • blockingMode: BOOL

        阻塞模式

      Returns QNAudioSource 实例
    destroyAudioSourceWithSourceID
    • - (void)destroyAudioSourceWithSourceID:(int)sourceID;
    • 销毁音源类

      Parameters
      • sourceID: int

        音源唯一标识符

    setPublishEnabled
    • - (void)setPublishEnabled:(BOOL)publishEnabled sourceID:(int)sourceID;
    • 设置某音源音频是否发布到远端

      Parameters
      • publishEnabled: BOOL

        是否发布到远端

      • sourceID: int

        音源唯一标识符

    isPublishEnabled
    • - (BOOL)isPublishEnabled:(int)sourceID;
    • 获取某音源音频是否发布到远端

      Parameters
      • sourceID: int

        音源唯一标识符

      Returns BOOL
    setVolume
    • - (void)setVolume:(float)volume sourceID:(int)sourceID;
    • 设置某音源音量,音量范围 0~1.0

      Parameters
      • volume: float

        音量大小

      • sourceID: int

        音源唯一标识符

    getVolume
    • - (float)getVolume:(int)sourceID;
    • 获取某音源音量

      Parameters
      • sourceID: int

        音源唯一标识符

      Returns float,范围 0~1.0
    setAllSourcesVolume
    • - (void)setAllSourcesVolume:(float)volume;
    • 设置所有音源的音量,范围 0~1.0

      Parameters
      • volume: float

        音量大小

    pushAudioBuffer
    • - (void)pushAudioBuffer:(AudioBuffer *)audioBuffer asbd:(AudioStreamBasicDescription *)asbd sourceID:(int)sourceID;
    • 导入音频数据

      Parameters
      • sourceID: int

        音源唯一标识符

      • audioBuffer: AudioBuffer

        音频数据

      • asbd: AudioStreamBasicDescription

        音频数据格式

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