RTC Peer Connection-component — sgcWebRTC | eSeGeCe

RTC Peer Connection

TsgcRTCPeerConnection — de ene component achter sgcWebRTC: ICE/TURN-connectiviteit, handmatige SDP-offer/answer-signalering (RFC 8829 JSEP), DTLS-SRTP-versleuteld transport, SCTP-datakanalen (RFC 8831/8832) en RTP-audio-/videotracks, in Delphi en C++ Builder.

TsgcRTCPeerConnection

Stel RTCOptions in, koppel de SDP- en ICE-events, en stuur dan zelf de offer/answer-uitwisseling aan, of open een datakanaal en laat CreateOffer het werk doen. Gebouwd op hetzelfde ICE/DTLS-transport als de basiscomponent in sgcWebSockets Enterprise.

Componentklasse

TsgcRTCPeerConnection

Unit

sgcP2P (re-exporteert sgcP2P_RTCPeerConnection)

Standaarden

RFC 8445, 8489, 8656, 8827, 5764, 8831, 8832, 3550, 3711, 8829

Talen

Delphi, C++ Builder

Voeg een videotrack toe en bied hem aan

Koppel een track met AddTrack, koppel de SDP-events, en roep dan CreateOffer aan. Stuur aSDP naar de remote peer via je eigen signaleringskanaal en voer het antwoord terug via SetRemoteDescription.

uses
  sgcP2P;

var
  oRTC: TsgcRTCPeerConnection;
  oTrack: TsgcRTCTrack;
begin
  oRTC := TsgcRTCPeerConnection.Create(nil);
  oRTC.RTCOptions.ICEServers.AddURL('stun:stun.l.google.com:19302');
  oRTC.OnLocalDescription      := OnLocalDescriptionHandler;
  oRTC.OnICECandidate          := OnICECandidateHandler;
  oRTC.OnConnectionStateChange := OnConnectionStateChangeHandler;
  oRTC.OnTrack                 := OnTrackHandler;

  oTrack := oRTC.AddTrack(rtctkVideo, cctVideoH264);
  oTrack.OnEncodedFrame := OnEncodedFrameHandler;   // remote frames, once negotiated

  oRTC.CreateOffer;   // gathers ICE candidates, builds the SDP offer, fires OnLocalDescription
end;

procedure TForm1.OnLocalDescriptionHandler(Sender: TObject;
  const aType, aSDP: string);
begin
  // send { type: aType, sdp: aSDP } to the remote peer
end;

// once the remote answer arrives over your signaling channel:
oRTC.SetRemoteDescription('answer', vRemoteSDP);

// and for every remote ICE candidate it sends:
oRTC.AddIceCandidate(vCandidate, vSdpMid, vSdpMLineIndex);
// includes: sgcP2P.hpp

TsgcRTCPeerConnection *oRTC = new TsgcRTCPeerConnection(NULL);
oRTC->RTCOptions->ICEServers->AddURL("stun:stun.l.google.com:19302");
oRTC->OnLocalDescription      = OnLocalDescriptionHandler;
oRTC->OnICECandidate          = OnICECandidateHandler;
oRTC->OnConnectionStateChange = OnConnectionStateChangeHandler;
oRTC->OnTrack                 = OnTrackHandler;

TsgcRTCTrack *oTrack = oRTC->AddTrack(rtctkVideo, cctVideoH264);
oTrack->OnEncodedFrame = OnEncodedFrameHandler;    // remote frames, once negotiated

oRTC->CreateOffer();   // gathers ICE candidates, builds the SDP offer, fires OnLocalDescription

void __fastcall TForm1::OnLocalDescriptionHandler(TObject *Sender,
  const String aType, const String aSDP)
{
  // send { type: aType, sdp: aSDP } to the remote peer
}

// once the remote answer arrives over your signaling channel:
oRTC->SetRemoteDescription("answer", vRemoteSDP);

// and for every remote ICE candidate it sends:
oRTC->AddIceCandidate(vCandidate, vSdpMid, vSdpMLineIndex);

Belangrijkste eigenschappen, methoden & events

De members die je het vaakst gebruikt. Zie de functiematrix voor het volledige overzicht per mogelijkheid.

Configuratie

RTCOptions bevat ICE, ICEServers, DTLS / DTLSOptions, Media (congestiecontrole, FEC, pacing, RTX) en de legacy WebSocket-signaleringsinstellingen.

Signalering

CreateOffer, CreateAnswer, SetLocalDescription, SetRemoteDescription, AddIceCandidate, RestartIce, Close.

Status

ConnectionState, SignalingState, LocalDescription, RemoteDescription, Renegotiating, NegotiationNeeded, Polite, TrickleICE.

Datakanalen

CreateDataChannel, DataChannelCount, DataChannels[i], OnDataChannel.

Mediatracks

AddTrack, RemoveTrack, TrackCount, Tracks[i], OnTrack.

Events

OnLocalDescription, OnICECandidate, OnConnectionStateChange, OnNegotiationNeeded, OnError, plus de legacy-familie OnRTCConnect / OnRTCCandidatePairNominated / OnRTCException.

Blijf ontdekken

Online helpVolledige API-referentie en gebruikshandleiding voor TsgcRTCPeerConnection.
Volledige functiematrixAudio, video, datakanalen, schermdelen, SRTP en bandbreedteschatting.
Download gratis proefversieVoer de peer-connectie uit tegen een browser of een andere native peer.
PrijzenSingle-, Team- en Site-licenties met volledige broncode.
De beste deal: All-AccessElk eSeGeCe-product, inclusief Premium-ondersteuning, vanaf €1,059 per jaar.
Bekijk de All-Access-prijzen

Klaar om te beginnen?

Download de gratis proefversie en open een peer-connectie vanuit Delphi of C++ Builder.