WebRTC テクノロジーを使用してオンライン ビデオ会議システムを構築する方法
現代のテクノロジーの発展に伴い、インターネット上でビデオ会議を行うことを選択する人が増えています。ビジネス会議、教育や教育、遠隔医療など、すべてオンライン ビデオ会議システムを通じて実現できます。このようなシステムを構築する場合、ブラウザ間で音声、ビデオ、データのリアルタイム通信を実現できる Web ベースのインスタント メッセージング技術である WebRTC (Web Real-time Communication) 技術を活用できます。
この記事では、WebRTC テクノロジを使用してシンプルなオンライン ビデオ会議システムを構築する方法を紹介します。具体的な手順は次のとおりです:
const express = require('express'); const app = express(); app.use(express.static('public')); const server = app.listen(3000, function() { console.log('Server running on port 3000'); });
<!DOCTYPE html> <html> <head> <title>WebRTC Video Conference</title> <script src="https://webrtc.github.io/adapter/adapter-latest.js"></script> </head> <body> <h1>WebRTC Video Conference</h1> <video id="localVideo" autoplay></video> <video id="remoteVideo" autoplay></video> <script src="script.js"></script> </body> </html>
const localVideo = document.getElementById('localVideo'); const remoteVideo = document.getElementById('remoteVideo'); navigator.mediaDevices.getUserMedia({ video: true, audio: true }) .then(function(stream) { localVideo.srcObject = stream; }) .catch(function(error) { console.error('Error accessing media devices:', error); }); const configuration = { iceServers: [ { urls: 'stun:stun.l.google.com:19302' }, { urls: 'stun:stun1.l.google.com:19302' }, ], }; const peerConnection = new RTCPeerConnection(configuration); peerConnection.addEventListener('track', function(event) { remoteVideo.srcObject = event.streams[0]; }); peerConnection.addEventListener('icecandidate', function(event) { if (event.candidate) { sendToServer({ type: 'icecandidate', candidate: event.candidate }); } }); function sendToServer(message) { // Send the message to the server using WebSocket or AJAX } function receiveFromServer(message) { // Receive the message from the server using WebSocket or AJAX } receiveFromServer({ type: 'offer', offer: /* Offer SDP */ }); function setRemoteDescription(message) { peerConnection.setRemoteDescription(new RTCSessionDescription(message.offer)) .then(function() { return peerConnection.createAnswer(); }) .then(function(answer) { return peerConnection.setLocalDescription(answer); }) .then(function() { sendToServer({ type: 'answer', answer: peerConnection.localDescription }); }) .catch(function(error) { console.error('Error setting remote description:', error); }); } function addIceCandidate(message) { peerConnection.addIceCandidate(new RTCIceCandidate(message.candidate)) .catch(function(error) { console.error('Error adding ICE candidate:', error); }); }
localVideo
要素に表示します。 。 configuration
は STUN サーバーのアドレスを含む設定オブジェクトです。 peerConnection.addEventListener('track', ...)
および peerConnection.addEventListener('icecandidate', ...)
は、リモート メディア ストリームと ICE 候補イベントを受信するために使用されるイベント リスナーです。 。 関数と
receiveFromServer 関数では、WebSocket または AJAX を使用してサーバーとリアルタイムで通信できます。
関数を通じてサーバーに送信します。もちろん、ICE 候補者に関連する操作もここで処理する必要があります。
以上がWebManテクノロジーを使用したオンラインビデオ会議システムの構築方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。