Komponent RTC Peer Connection — sgcWebRTC | eSeGeCe

RTC Peer Connection

TsgcRTCPeerConnection — jedyny komponent stojący za sgcWebRTC: łączność ICE/TURN, ręczna sygnalizacja oferta/odpowiedź SDP (RFC 8829 JSEP), szyfrowany transport DTLS-SRTP, kanały danych SCTP (RFC 8831/8832) i ścieżki audio/wideo RTP, w Delphi i C++ Builder.

TsgcRTCPeerConnection

Ustaw RTCOptions, podłącz zdarzenia SDP i ICE, a następnie steruj wymianą oferta/odpowiedź samodzielnie albo otwórz kanał danych i pozwól, aby zrobił to CreateOffer. Zbudowany na tym samym transporcie ICE/DTLS co komponent bazowy w sgcWebSockets Enterprise.

Klasa komponentu

TsgcRTCPeerConnection

Jednostka

sgcP2P (reeksportuje sgcP2P_RTCPeerConnection)

Standardy

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

Języki

Delphi, C++ Builder

Dodaj ścieżkę wideo i zaoferuj ją

Dołącz ścieżkę za pomocą AddTrack, podłącz zdarzenia SDP, a następnie wywołaj CreateOffer. Wyślij aSDP do zdalnego peera własnym kanałem sygnalizacji, a jego odpowiedź wprowadź z powrotem przez 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);

Kluczowe właściwości, metody i zdarzenia

Składniki, po które sięgasz najczęściej. Pełny podział według możliwości znajdziesz w matrycy funkcji.

Konfiguracja

RTCOptions zawiera ICE, ICEServers, DTLS / DTLSOptions, Media (kontrola przeciążenia, FEC, pacing, RTX) oraz dawne ustawienia sygnalizacji WebSocket.

Sygnalizacja

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

Stan

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

Kanały danych

CreateDataChannel, DataChannelCount, DataChannels[i], OnDataChannel.

Ścieżki mediów

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

Zdarzenia

OnLocalDescription, OnICECandidate, OnConnectionStateChange, OnNegotiationNeeded, OnError, a do tego dawna rodzina OnRTCConnect / OnRTCCandidatePairNominated / OnRTCException.

Poznawaj dalej

Pomoc onlinePełna dokumentacja API i przewodnik użytkowania TsgcRTCPeerConnection.
Pełna matryca funkcjiAudio, wideo, kanały danych, udostępnianie ekranu, SRTP i szacowanie przepustowości.
Pobierz bezpłatną wersję próbnąUruchom połączenie peer względem przeglądarki lub innego natywnego peera.
CennikLicencje Single, Team i Site z pełnym kodem źródłowym.
Najkorzystniejsza oferta: All-AccessWszystkie produkty eSeGeCe, ze wsparciem Premium w cenie, już od €1,059 rocznie.
Zobacz cennik All-Access

Gotowy, aby zacząć?

Pobierz bezpłatną wersję próbną i otwórz połączenie peer z Delphi lub C++ Builder.