上篇已经说道,通过注册回调,给上层APP抛音频裸数据:
《WebRTC Native M96 SDK接口封装–注册语音观测器对象获取原始音频数据registerAudioFrameObserver》[https://dabaojian.blog.csdn.net/article/details/128218542]
此篇,就详细讲述一下,如果实现onPlaybackAudioFrame。
virtual bool onPlaybackAudioFrame(AudioFrame& audioFrame) = 0;
AudioFrame的定义,这里就不在重复了,可以看上一篇博客。上文书说道,上层APP已经给我们SDK设置了回调函数,并且我们作为媒体引擎的成员变量保存了下来audio_observer_
如果对webrtc音频数据的流转不是很清楚的,可以看之前的文章:
WebRTC Native M96 音频发送流程(SendRtp)以及接收音频包播放流程(OnPacketReceived)[https://dabaojian.blog.csdn.net/article/details/122991836]
core audio开启音频渲染线程:
DWORD WINAPI AudioDeviceWindowsCore::WSAPIRenderThread(LPVOID context) {return reinterpret_cast