De microfoon versturen
AddTrack neemt een soort en een codec en geeft een TsgcRTCTrack terug. De audiocodecs zijn cctAudioOpus, cctAudioPCMU en cctAudioPCMA, de videocodecs zijn cctVideoVP8, cctVideoVP9, cctVideoH264 en cctVideoJPEG.
Capture is een apart object, want misschien wil je de microfoon van het platform helemaal niet. sgcCreateAudioCapture bouwt de juiste implementatie voor het platform waarvoor de code gecompileerd is, waveIn op Windows, ALSA op Linux, AudioRecord op Android, een VoiceProcessingIO Audio Unit op iOS en macOS, zodat niets in jouw code een platformklasse noemt. Op een target zonder implementatie geeft het nil terug, dus test het resultaat.
SendPCM wil 16-bits signed interleaved PCM op de sample rate en het kanaalaantal van de encoder, wat voor Opus 48000 Hz is en voor G.711 8000 Hz. De capture source publiceert wat hij daadwerkelijk levert via AudioSampleRate, AudioChannels en AudioFrameDurationMs, zodat je kunt controleren in plaats van aannemen.
Een track toevoegen nadat de sessie al staat zet de negotiation-needed-vlag en vuurt OnNegotiationNeeded. Roep CreateOffer opnieuw aan om hem te publiceren, en de nieuwe offer wordt gebouwd zonder het transport aan te raken.