Maison > Article > développement back-end > Comment utiliser PHP et WebRTC pour la communication vidéo et audio en temps réel
Avec le développement continu d'Internet, la communication vidéo et audio en temps réel est devenue de plus en plus un moyen de communication important pour les gens, et elle a pénétré tous les aspects de notre vie quotidienne et de notre travail. PHP et WebRTC sont des outils très utiles lors de la mise en œuvre de communications vidéo et audio en temps réel. Alors, comment utiliser PHP et WebRTC pour la communication vidéo et audio en temps réel ? Ensuite, nous donnerons des instructions de fonctionnement détaillées étape par étape.
Tout d'abord, nous devons comprendre certaines connaissances de base de WebRTC. WebRTC est un protocole de communication en temps réel qui permet la communication vidéo et audio sur le navigateur. Il utilise l'API JavaScript, qui peut communiquer avec le navigateur sans installer de plug-ins. communication. Cependant, WebRTC n'est pas une technologie indépendante et nécessite la coopération d'autres technologies pour réaliser une communication vidéo et audio en temps réel. Ensuite, avant d'utiliser PHP et WebRTC pour réaliser une communication vidéo et audio en temps réel, nous devons maîtriser les bases techniques suivantes :
Ensuite, nous présenterons les étapes spécifiques pour utiliser PHP et WebRTC pour réaliser une communication vidéo et audio en temps réel :
Utilisez l'API WebRTC pour créer des flux audio et vidéo pour réaliser une communication vidéo et audio en temps réel, la première étape. Grâce à l'API WebRTC, vous pouvez créer un flux audio et vidéo local et l'envoyer à un appareil distant. Nous pouvons utiliser le code suivant pour créer des flux audio et vidéo locaux :
<script> const getUserMedia = (navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia); const constraints = { audio: true, video: { width: 1280, height: 720 } }; getUserMedia(constraints, (stream) => { const video = document.querySelector('video'); video.srcObject = stream; video.onloadedmetadata = (e) => { video.play(); }; }, (err) => { console.log(err); }); </script>
Dans le code ci-dessus, nous utilisons la méthode getUserMedia()
pour obtenir les flux audio et vidéo locaux et les attribuer à balise vidéo
. getUserMedia ()
方法获取本地的音频和视频流,并将其赋给video
标签。
WebSocket是一种基于TCP协议的双向数据传输协议。使用WebSocket,我们可以在客户端和服务器之间建立长期连接。我们可以使用以下代码来建立WebSocket连接:
<script> var ws = new WebSocket('ws://yourserveraddress:port/'); ws.onopen = function() { console.log('WebSocket已打开'); }; ws.onmessage = function(e) { console.log('收到消息', e.data); }; ws.onclose = function() { console.log('WebSocket已关闭'); }; ws.onerror = function(e) { console.log('WebSocket发生错误:', e); }; </script>
上述代码中,我们使用WebSocket的构造函数创建一个WebSocket对象,指定连接的服务器地址和端口,使用onopen、onmessage、onclose和onerror方法分别处理打开、接收消息、关闭、和错误的事件。当WebSocket打开后,我们就可以通过WebSocket向服务器发送消息和接收消息。
WebSocket可以使用二进制数据传输,我们可以将本地的音视频流通过WebSocket传递给远程设备。我们可以使用以下代码来发送音视频流:
<script> var ws = new WebSocket('ws://yourserveraddress:port/'); ... function sendData() { var video = document.getElementById('video'); var canvas = document.createElement('canvas'); canvas.width = video.videoWidth; canvas.height = video.videoHeight; canvas.getContext('2d').drawImage(video, 0, 0, canvas.width, canvas.height); canvas.toBlob(function(blob) { ws.send(blob); }); } </script>
上述代码中,我们将视频流转为canvas画布,使用toBlob()
函数将其转为Blob对象,然后通过WebSocket将其发送给远程设备。
我们可以使用onmessage()函数接收来自远程设备的音视频流。我们可以使用以下代码来接收音视频流:
<script> var video2 = document.getElementById('video2'); function startVideo(stream) { video2.srcObject = stream; video2.onloadedmetadata = function(e) { video2.play(); }; } ... ws.onmessage = function(e) { var blob = e.data; var videoUrl = window.URL.createObjectURL(blob); video2.src = videoUrl; }; </script>
上述代码中,我们使用URL.createObjectURL()
函数将浏览器的Blob对象转为URL地址,然后将其赋给video2
toBlob()
pour le convertir en objet Blob, puis envoyez-le via WebSocket Sent vers un appareil distant. 🎜URL.createObjectURL()
pour convertir l'objet Blob du navigateur en adresse URL, puis attribuez-le à la balise video2
. 🎜🎜Pour résumer, il n'est pas difficile de mettre en œuvre une communication vidéo et audio en temps réel à l'aide de PHP et WebRTC. Il suffit de maîtriser quelques connaissances de base puis de suivre les étapes ci-dessus étape par étape. La communication vidéo et audio en temps réel est une technologie très pratique qui nous aidera grandement dans notre vie et notre travail. 🎜Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!