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 :
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>
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);
});
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));
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
É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
};
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
}
};
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.