功能描述
一些特殊的场景中,比如用户已有自己的音频模块,或者有自定义采集或播放的需求。QttAudio SDK支持用户使用自定义的音频采集或播放。
普通用户可跳过该章节。
自定义采集
@interface QttChannelEngine : NSObject /** * 开启或关闭外部音频采集 * @param enable 开启或关闭 * @param samplerate 外部音频源的采样率 (Hz),可设置为 8000,16000,32000,44100 或 48000 * @param channels 外部音频源的通道数,可设置为 1 或 2 * @return - 0(ERR_SUCCESS): 成功. - < 0: 失败. */ - (int)setExternalRecorder:(bool)enable samplerate:(int)samplerate channels:(int)channels;
/** * 推送外部音频数据 * @param buf 外部音频数据 * @param bufSize 外部音频数据大小 * @return - 0(ERR_SUCCESS): 成功. - < 0: 失败. */ - (int)pushExternalRecordFrame:(char*)buf bufSize:(int)bufSize; @end
|
实现步骤
- 进入频道(join)前,调用setExternalRecorder方法启用自定义音频采集。
- 持续调用pushExternalRecordFrame方法,将采集的音频数据写入SDK,最好是加入房间成功后进行写入。
自定义播放
@protocol QttRtcDataDelegate <NSObject> @optional
- (int)onData:(char *)buf len:(int)len; @end; @interface QttChannelEngine : NSObject
- (int)setExternalPlayer:(bool)enable observer:(id<QttRtcDataDelegate>)observer samplerate:(int)samplerate channels:(int)channels bufSize:(int)bufSize; @end
|
实现步骤
- 进入频道(join)前,调用setExternalPlayer方法启用自定义音频播放。
- QttRtcDataDelegate会通过onData接口持续回调待播放的数据。