ホームページ >バックエンド開発 >PHPチュートリアル >PHPを用いたWebRTCのリアルタイム音声・映像通信機能解析
PHP を使用して WebRTC のリアルタイム音声およびビデオ通信機能の分析を実装する
インターネット技術の継続的な発展に伴い、リアルタイムの音声およびビデオ通信の需要が高まっています。増加しています。新しいテクノロジーである WebRTC は、Web ブラウザーでリアルタイムの音声およびビデオ通信を実現し、開発者に利便性を提供します。
この記事では、PHP を使用して WebRTC のリアルタイム音声およびビデオ通信機能を実装する方法を紹介します。同時に、読者の参考のために、関連するコード例が示されます。
WebRTC は Google によって開発されたオープン ソース プロジェクトであり、WebRTC を通じて、Web ブラウザーでポイントツーポイントのリアルタイムのオーディオおよびビデオ通信を実現できます。 WebRTC は Web ページで JavaScript プログラミング言語を使用しますが、シグナリング サーバーなどの WebRTC サーバー側の一部の機能を PHP を使用して実装できます。
WebRTC のリアルタイム音声およびビデオ通信機能は、主にメディア ストリームのキャプチャ、メディア ストリームの送信、およびメディア ストリームの処理の 3 つの部分で構成されます。まず、PHP を使用してメディア ストリーム キャプチャを実装する方法を見てみましょう。
オーディオとビデオの通信はメディア ストリームを通じて送信される必要があり、WebRTC はメディア ストリームをキャプチャするための getUserMedia
メソッドを提供します。 Web ブラウザでは、JavaScript コードを通じて getUserMedia
メソッドを呼び出すことができます。
以下はサンプル コードです:
navigator.mediaDevices.getUserMedia({audio: true, video: true}) .then(function(stream) { // 捕获到音视频媒体流后的处理逻辑 }) .catch(function(error) { // 捕获媒体流失败的处理逻辑 });
このコードでは、getUserMedia
メソッドを呼び出してオーディオとビデオのメディア ストリームを取得します。 getUserMedia
メソッドは、構成オブジェクトをパラメーターとして受け取り、オーディオ ストリームとビデオ ストリームを取得するかどうかを指定します。メディア ストリームの取得に成功すると、then
メソッドのコールバック関数が実行され、そうでない場合は、catch
メソッドのコールバック関数が実行されます。
PHP では、exec
関数を使用して JavaScript コードを実行できます。以下は、PHP を使用して JavaScript コードを呼び出す例です。
<?php $output = exec("node <path to your JavaScript file>"); echo $output; ?>
上記のコードを使用すると、PHP で JavaScript コードを実行して、PHP でメディア ストリームを取得できます。
リアルタイムのオーディオおよびビデオ通信はネットワーク経由で送信する必要があり、WebRTC は処理する RTCPeerConnection
オブジェクトを提供します。メディアストリームの送信。 RTCPeerConnection
オブジェクトは、オーディオ データとビデオ データを送信するために 2 つの Web ブラウザー間にポイントツーポイント接続を確立できます。
以下は、RTCPeerConnection
オブジェクトを使用してメディア ストリームを送信するサンプル コードです:
const peerConnection = new RTCPeerConnection(); peerConnection.addStream(stream); // 发送媒体流 peerConnection.createOffer().then(function(offer) { return peerConnection.setLocalDescription(offer); }).then(function() { // 将offer发送给对方 }); // 接收媒体流 peerConnection.onicecandidate = function(event) { // 将candidate发送给对方 }; // 从对方获取媒体流 peerConnection.onaddstream = function(event) { const stream = event.stream; // 处理媒体流数据 };
このコードでは、最初に RTCPeerConnection
を作成します。オブジェクト、およびメディア ストリームは addStream
メソッドを通じて追加されます。次に、createOffer
メソッドを通じてメディア ストリーム記述情報 (SDP) を作成し、それをローカル記述情報として設定します。 setLocalDescription
メソッドでローカル記述情報を設定した後、相手に送信できます。
相手はローカル記述情報を受信した後、setRemoteDescription
メソッドを通じてそれを相手の記述情報として設定できます。その後、相手は createAnswer
メソッドを通じてメディア ストリーム応答情報を作成し、ローカル記述情報として設定できます。次に、setLocalDescription
メソッドを通じてローカルの説明情報を相手に送信します。
メディア ストリームの送受信のプロセスでは、候補 (ICE 候補) 情報も処理する必要があります。 ICE 候補は、ブラウザ間のリアルタイム通信のための ICE 接続を確立するために使用されます。
PHP では、WebSocket または HTTP インターフェイスを呼び出すことでメディア ストリームの送信を実現できます。
相手のメディア ストリームを受信したら、それを処理する必要があります。 WebRTC は、メディア ストリームを処理するための API をいくつか提供しています。たとえば、<video></video>
要素と <audio></audio>
要素を使用して、メディア ストリームを再生できます。
次は、<video></video>
要素を使用してメディア ストリームを再生するサンプル コードです:
<video autoplay></video> <script> const videoElement = document.querySelector('video'); videoElement.srcObject = stream; </script>
このコードでは、autoplay# を渡します。 ## メディア ストリームを自動的に再生するためのプロパティ。次に、JavaScript コードを使用してメディア ストリームを
srcObject 属性に割り当て、オーディオとビデオを再生します。
以上がPHPを用いたWebRTCのリアルタイム音声・映像通信機能解析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。