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

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

#  QNCustomAudioTrack

最近更新时间: 2022-06-30 15:11:53

本地音频自定义导入 Track 类

Hierarchy

  * [QNTrack](https://developer.qiniu.com/rtc/8856/QNCustomAudioTrack-iOS/8851/QNTrack-iOS)
    * [QNLocalTrack](https://developer.qiniu.com/rtc/8856/QNCustomAudioTrack-iOS/8847/QNLocalTrack-iOS)
      * [QNLocalVideoTrack](https://developer.qiniu.com/rtc/8856/QNCustomAudioTrack-iOS/8849/QNLocalVideoTrack-iOS)
        * [QNCameraVideoTrack](https://developer.qiniu.com/rtc/8856/QNCustomAudioTrack-iOS/8852/QNCameraVideoTrack-iOS)
        * [QNScreenVideoTrack](https://developer.qiniu.com/rtc/8856/QNCustomAudioTrack-iOS/8850/QNScreenVideoTrack-iOS)
        * [QNCustomVideoTrack](https://developer.qiniu.com/rtc/8856/QNCustomAudioTrack-iOS/8853/QNCustomVideoTrack-iOS)
      * [QNLocalAudioTrack](https://developer.qiniu.com/rtc/8856/QNCustomAudioTrack-iOS/8854/QNLocalAudioTrack-iOS)
        * [QNMicrophoneAudioTrack](https://developer.qiniu.com/rtc/8856/QNCustomAudioTrack-iOS/8855/QNMicrophoneAudioTrack-iOS)
        * QNCustomAudioTrack 
    * [QNRemoteTrack](https://developer.qiniu.com/rtc/8856/QNCustomAudioTrack-iOS/8857/QNRemoteTrack-iOS)
      * [QNRemoteVideoTrack](https://developer.qiniu.com/rtc/8856/QNCustomAudioTrack-iOS/8858/QNRemoteVideoTrack-iOS)
      * [QNRemoteAudioTrack](https://developer.qiniu.com/rtc/8856/QNCustomAudioTrack-iOS/8859/QNRemoteAudioTrack-iOS)

Index

Core Properties

  * userID
  * trackID
  * kind
  * tag
  * muted
  * customAudioDelegate

Core Methods

  * updateMute
  * destroy
  * setVolume
  * getVolumeLevel
  * pushAudioBuffer[1/2]
  * pushAudioBuffer[2/2]

Core Properties

userID

  * @property (nonatomic, readonly) NSString *userID;
  * 一路 Track 所属用户的唯一标识

trackID

  * @property (nonatomic, strong) NSString *trackID;
  * 一路 Track 在 Server 端的唯一标识

> 发布成功时由 SDK 自动生成，订阅/Mute 等操作依据此 trackID 来确定相应的 Track

kind

  * @property (nonatomic, readonly) [QNTrackKind](https://developer.qiniu.com/rtc/8856/QNCustomAudioTrack-iOS/9254) kind;
  * 标识该路 Track 是音频还是视频

tag

  * @property (nonatomic, strong) NSString *tag;
  * Track 的 tag

muted

  * @property (nonatomic, assign, readonly) BOOL muted;
  * 标识 Track 是否为 mute 状态

customAudioDelegate

  * @property (nonatomic, weak) id<[QNCustomAudioTrackDelegate](https://developer.qiniu.com/rtc/8856/QNCustomAudioTrack-iOS/11946/QNCustomAudioTrackDelegate)> customAudioDelegate;
  * 自定义音频 Track 回调代理

Core Methods

updateMute

  * \- (void)updateMute:(BOOL)mute;
  * 更新当前 Track 的 mute 值，静默后，SDK 将会发送静默帧数据

当静默状态改变后，远端用户将会收到
[QNRemoteAudioTrackDelegate.didMuteStateChanged](https://developer.qiniu.com/rtc/8856/QNCustomAudioTrack-
iOS/11948) 的回调

Parameters

    * mute: BOOL 

是否静默 Track

destroy

  * \- (void)destroy;
  * 销毁本地音/视频 Track

> 在不使用该 Track 之后，请务必调用此接口

setVolume

  * \- (void)setVolume:(double)volume;
  * 设置当前音频输入设备的音量大小，范围 0 ~ 10，默认为 1

> 音量值在 0.0 ~ 1.0 之间为软件缩小；1.0 为原始音量；大于 1.0 且小于 10.0 为软件放大
>
> 在需要放大时，应从 1.x 开始设置，用最小的放大值来取得合适的播放效果，过大将会导致音频音调异常
>
> 该设置可以用于适度对数据音量做放大或者缩小

Parameters

    * volume: double 

音量值

getVolumeLevel

  * \- (float)getVolumeLevel;
  * 获取当前音频输入设备采集的音量大小

> 可通过定时调用该方法获取音量值的方式来判断当前用户是否在讲话
>
> 在安静的环境下，获取到 0.0x 大小的数值为预期现象，您可根据您的需求自行决定判断的阈值

Returns float 范围 0 ～ 10

pushAudioBuffer[1/2]

  * \- (void)pushAudioBuffer:(AudioBuffer *)audioBuffer;
  * 导入自定义音频数据

> 支持的音频数据格式为：PCM 格式，48000 采样率，16 位宽，单声道

Parameters

    * audioBuffer: AudioBuffer 

音频数据 buffer

pushAudioBuffer[2/2]

  * \- (void)pushAudioBuffer:(AudioBuffer *)audioBuffer asbd:(AudioStreamBasicDescription *)asbd;
  * 导入自定义 PCM 音频数据

> 支持的音频数据格式为：PCM 格式

> 音频数据的格式信息，请务必对应实际数据信息传入，否则可能出现音频声音异常等情况

Parameters

    * audioBuffer: AudioBuffer 

音频数据 buffer

    * asbd: AudioStreamBasicDescription 

音频数据格式信息

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