AudioDeviceBuffer::DeliverRecordedData[由采集线程调用]->VoEBaseImpl::RecordedDataIsAvailable->VoEBaseImpl::ProcessRecordedDataWithAPM->
Channel::EncodeAndSend()[音频编码前]->AudioCodingModuleImpl::Add10MsData[编码模块]-> AudioCodingModuleImpl::Encode[AudioCodingModuleImpl::RegisterTransportCallback注册编码后的数据打包回调对象,就是Channel,继承了AudioPacketizationCallback]->
Channel::SendData[音频编码后,打包前]->ModuleRtpRtcpImpl::SendOutgoingData->
RTPSenderAudio::SendAudio->RTPSender::SendToNetwork[RTP包]->
RTPSender::SendPacketToNetwork[RTPSender对象在构造函数ModuleRtpRtcpImpl::ModuleRtpRtcpImpl初始化, ModuleRtpRtcpImpl在Channel::Channel创建]-> Channel::SendRtp()->WebRtcVoiceMediaChannel::SendRtp()->
VoiceMediaChannel::SendPacket->BaseChannel::SendPacket->P2PTransportChannel::SendPacket->ProxyConnection::Send[UDPPort::SendTo]|TCPConnection::Send|RelayConnection::Send
本文详细介绍了音频从采集到最终通过P2P网络发送的整个流程,包括AudioDeviceBuffer::DeliverRecordedData采集数据传递、VoEBaseImpl模块处理、音频编码、打包以及RTP包发送等关键步骤。
625

被折叠的 条评论
为什么被折叠?



