RTC Peer Connection Bileşeni — sgcWebRTC | eSeGeCe

RTC Peer Connection

TsgcRTCPeerConnection — sgcWebRTC'nin arkasındaki tek bileşen: Delphi ve C++ Builder'da ICE/TURN bağlanabilirliği, manuel SDP teklif/yanıt sinyalleşmesi (RFC 8829 JSEP), DTLS-SRTP şifreli taşıma, SCTP veri kanalları (RFC 8831/8832) ve RTP ses/görüntü izleri.

TsgcRTCPeerConnection

RTCOptions'ı ayarlayın, SDP ve ICE olaylarını bağlayın, ardından ya teklif/yanıt alışverişini kendiniz yönetin ya da bir veri kanalı açıp bunu CreateOffer'a bırakın. sgcWebSockets Enterprise'daki temel bileşenle aynı ICE/DTLS taşıması üzerine kuruludur.

Bileşen sınıfı

TsgcRTCPeerConnection

Birim

sgcP2P (sgcP2P_RTCPeerConnection'ı yeniden dışa aktarır)

Standartlar

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

Diller

Delphi, C++ Builder

Bir Görüntü İzi Ekleyin ve Teklif Edin

AddTrack ile bir iz ekleyin, SDP olaylarını bağlayın, ardından CreateOffer'ı çağırın. aSDP'yi kendi sinyalleşme kanalınız üzerinden uzak eşe gönderin ve yanıtını SetRemoteDescription üzerinden geri besleyin.

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);

Temel özellikler, yöntemler ve olaylar

En sık başvurduğunuz üyeler. Yeteneğe göre tam döküm için özellik matrisine bakın.

Yapılandırma

RTCOptions; ICE, ICEServers, DTLS / DTLSOptions, Media (tıkanıklık kontrolü, FEC, pacing, RTX) ve eski WebSocket sinyalleşme ayarlarını tutar.

Sinyalleşme

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

Durum

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

Veri kanalları

CreateDataChannel, DataChannelCount, DataChannels[i], OnDataChannel.

Medya izleri

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

Olaylar

OnLocalDescription, OnICECandidate, OnConnectionStateChange, OnNegotiationNeeded, OnError, ayrıca eski OnRTCConnect / OnRTCCandidatePairNominated / OnRTCException ailesi.

Keşfetmeye devam edin

Çevrimiçi yardımTsgcRTCPeerConnection için tam API referansı ve kullanım kılavuzu.
Tam Özellik MatrisiSes, görüntü, veri kanalları, ekran paylaşımı, SRTP ve bant genişliği tahmini.
Ücretsiz Deneme Sürümünü İndirinEş bağlantısını bir tarayıcıya veya başka bir yerel eşe karşı çalıştırın.
FiyatlandırmaTam kaynak kodlu Single, Team ve Site lisansları.
En avantajlı seçenek: All-AccessTüm eSeGeCe ürünleri, Premium Destek dahil, yılda €1,059'dan itibaren.
All-Access fiyatlarına bakın

Başlamaya Hazır mısınız?

Ücretsiz deneme sürümünü indirin ve Delphi veya C++ Builder'dan bir eş bağlantısı açın.