音频传输过程中,我们可以对采集到的音频数据进行前处理和后处理,获取想要的播放效果。 对于有自行处理音频数据需求的场景,百家云提供原始数据功能。你可以在将数据发送给编码器前进行前处理,对捕捉到的音频信号进行修改。
相关函数接口在 ios-sdk 2.8.20 及以上版本支持
通过接口 setCustomAudioRenderingFrameCallbackFormat 可以设定原始音频回调中音频的格式。
BRTCCustomAudioDelegateFormat *para = [BRTCCustomAudioDelegateFormat new]; para.sampleRate = BRTCAudioSampleRate48000; para.channel = 2; para.samplesPerCall = 480; [self.brtc setCustomAudioRenderingFrameCallbackFormat:para];
通过接口 setAudioFrameCallbackDelegate 设置本地音频帧监听,通过回调函数接收编码前采集的原始音频数据、或者经过3A处理后的采集数据, 做语音识别等
@interface BRTCTestViewController : UIViewController<BRTCAudioCallbackDelegate> @end @implementation BRTCTestViewController - (void)setup{ [self.brtc setAudioFrameCallbackDelegate:self]; // 每次设置都会删除之前的pcm文件,重新创建一个空的文件 [self createPCMFile]; } - (void)createPCMFile { NSString *path = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject]; NSString *rawFilePath = [path stringByAppendingPathComponent:@"raw.pcm"]; NSString *processFilePath = [path stringByAppendingPathComponent:@"process.pcm"]; NSFileManager *fileManager = [NSFileManager defaultManager]; // 如果存在则先删除再创建,保证是一个空的文件 if ([[NSFileManager defaultManager] fileExistsAtPath:rawFilePath]) { [[NSFileManager defaultManager] removeItemAtURL:[NSURL fileURLWithPath:rawFilePath] error:nil]; } [fileManager createFileAtPath:rawFilePath contents:nil attributes:nil]; if ([[NSFileManager defaultManager] fileExistsAtPath:processFilePath]) { [[NSFileManager defaultManager] removeItemAtURL:[NSURL fileURLWithPath:processFilePath] error:nil]; } [fileManager createFileAtPath:processFilePath contents:nil attributes:nil]; self.rawHandle = [NSFileHandle fileHandleForWritingAtPath:rawFilePath]; self.processHandle = [NSFileHandle fileHandleForWritingAtPath:processFilePath]; } #pragma mark - BRTCAudioCallbackDelegate //本地采集后的 PCM 数据回调 - (void)onAudioCapturedRawAudioFrame:(BRTCCustomAudioFrame *)frame { [self.rawHandle seekToEndOfFile]; [self.rawHandle writeData:frame.data]; } //本地采集并经过音频模块前处理(ANS、AEC、AGC)后的 PCM 数据回调 - (void)onAudioLocalProcessedAudioFrame:(BRTCCustomAudioFrame *)frame { [self.processHandle seekToEndOfFile]; [self.processHandle writeData:frame.data]; } @end
原始数据采集
音频传输过程中,我们可以对采集到的音频数据进行前处理和后处理,获取想要的播放效果。 对于有自行处理音频数据需求的场景,百家云提供原始数据功能。你可以在将数据发送给编码器前进行前处理,对捕捉到的音频信号进行修改。
相关函数接口在 ios-sdk 2.8.20 及以上版本支持
音频原始数据格式设定
通过接口 setCustomAudioRenderingFrameCallbackFormat 可以设定原始音频回调中音频的格式。
音频原始数据
通过接口 setAudioFrameCallbackDelegate 设置本地音频帧监听,通过回调函数接收编码前采集的原始音频数据、或者经过3A处理后的采集数据, 做语音识别等