WebRTC (Web Real-Time Communication) est un projet gratuit et open source qui fournit aux navigateurs Web et aux applications mobiles une communication en temps réel via des interfaces de programmation d'applications (API) simples. Il permet le partage d'audio, de vidéo et de données directement entre les navigateurs Web sans avoir besoin de plugins supplémentaires ou de logiciels tiers. Voici quelques façons d’utiliser WebRTC en HTML5 :

  1. Configuration de base : pour utiliser WebRTC en HTML5, vous devez configurer le code HTML et JavaScript nécessaire. Voici un exemple de base :

    HTML
    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>WebRTC Example</title> </head> <body> <video id="localVideo" autoplay></video> <video id="remoteVideo" autoplay></video> <script> // Your WebRTC code here </script> </body> </html>
  2. Accéder aux médias utilisateur : utilisez navigator.mediaDevices.getUserMedia pour accéder à la caméra et au microphone de l'utilisateur. Ceci est nécessaire pour la communication vidéo et audio.

    javascript
    navigator.mediaDevices.getUserMedia({ video: true, audio: true }) .then((stream) => { // Use the stream for local video document.getElementById('localVideo').srcObject = stream; }) .catch((error) => { console.error('Error accessing media devices:', error); });
  3. Créer une connexion homologue : configurez une connexion homologue pour établir une connexion entre deux utilisateurs.

    javascript
    let peerConnection = new RTCPeerConnection(); // Add local stream to the peer connection stream.getTracks().forEach(track => peerConnection.addTrack(track, stream));
  4. Créer une offre et une réponse : utilisez les méthodes createOffer et createAnswer pour générer une offre et une réponse pour la communication.

    javascript
    // Create an offer peerConnection.createOffer() .then((offer) => peerConnection.setLocalDescription(offer)) .then(() => { // Send the offer to the other peer }) .catch((error) => console.error('Error creating offer:', error)); // On the other side, handle the offer and create an answer // Then set the remote description of the peer connection
  5. Établir un canal de données : utilisez la méthode createDataChannel pour activer la communication de données entre pairs.

    javascript
    let dataChannel = peerConnection.createDataChannel('myDataChannel'); dataChannel.onopen = (event) => { // Data channel is open }; dataChannel.onmessage = (event) => { // Handle received data };
  6. Gestion des candidats ICE : implémentez la gestion des candidats ICE pour permettre la communication sur différents réseaux.

    javascript
    peerConnection.onicecandidate = (event) => { if (event.candidate) { // Send the ICE candidate to the other peer } };
  7. Affichage vidéo à distance : configurez l'élément vidéo distant pour afficher le flux vidéo du homologue distant.

    javascript
    peerConnection.ontrack = (event) => { document.getElementById('remoteVideo').srcObject = event.streams[0]; };

Ce ne sont que des exemples de base, et les applications du monde réel peuvent impliquer davantage de fonctionnalités et de gestion des erreurs. De plus, vous aurez besoin d'un mécanisme de signalisation (un serveur ou un service comme WebSocket) pour échanger des informations entre pairs, telles que des descriptions de session et des candidats ICE. L'API WebRTC fournit un ensemble robuste d'outils pour la communication en temps réel, afin que vous puissiez la personnaliser et l'étendre en fonction des besoins de votre application.