获取音频流
接口描述
该接口用于获取会议中各会场混音后的音频数据流。只支持32位库。
注意事项
该接口为异步接口,回调函数返回值只代表接口是否调用成功,实际业务处理结果在对应的通知函数中返回。
在进入会议前就可以调用此接口,创建或加入会议后就会有通知。
方法定义
HWM_SDK_AGENT_API hwmsdk::HwmErrCode SetAudioRawDataOutputConfig(bool isOpen);
回调函数
virtual void OnSetAudioRawDataOutputConfigResult(hwmsdk::HwmErrCode ret, const char* reason) {};
通知函数
virtual void OnAudioFrameNotify(const AudioFrameData* pFrame) {};
参数描述
参数 |
是否必须 |
类型 |
描述 |
---|---|---|---|
isOpen |
是 |
bool |
是否开启功能开关。 |
类型 |
描述 |
---|---|
HwmErrCode |
成功返回0,其他值表示失败。失败返回值见错误码参考。 |
参数 |
类型 |
描述 |
---|---|---|
eFrameType |
音频帧类型 |
|
iSamples |
signed int |
每个声道的采样点数 |
iSamplesPerSec |
signed int |
采样率 |
iBytesPerSample |
signed int |
每个采样点的字节数,pcm数据一般16bit |
iChannels |
signed int |
声道数 |
pBuffer |
char * |
数据缓冲区,长度=iSamples*iBytesPerSample*iChannels |
uiDataLen |
signed int |
编码后或解码前使用该字段表示数据长度,加解密处理后需更新此字段值 |
uiBufferLen |
signed int |
缓冲区长度,编码后数据进行第三方加密,数据长度会变大,防止溢出 |
示例代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
/** * 上报音频码流帧数据通知 */ void demoNotifyProc::OnAudioFrameNotify(const AudioFrameData* pFrame) { if(nullptr != pFrame) { FILE* recordFile = nullptr; std::string Path ("D:\\AudioFrame.pcm"); auto error = fopen_s(&recordFile,Path.c_str(), "ab+"); if (error != 0) { CTools::OutputRetStr("open file error = " + std::to_string(error)); } if (nullptr != recordFile) { fwrite(pFrame->pBuffer, sizeof(char), pFrame->iSamples * pFrame->iBytesPerSample * pFrame->iChannels, recordFile); fclose(recordFile); } } } |