Java Websocket を使用してオンラインの音声通話とビデオ通話を実装するにはどうすればよいですか?
今日のデジタル時代では、リアルタイムのコミュニケーションがますます一般的になってきています。職場でのリモート コラボレーションでも、自宅での親戚や友人とのリモート コミュニケーションでも、リアルタイムの音声通話やビデオ通話は人々にとって欠かせないものになっています。この記事では、Java Websocket を使用してオンライン音声通話とビデオ通話を実装する方法を紹介し、具体的なコード例を示します。
1. Websocket を理解する
Websocket は HTML5 の新しいプロトコルで、ブラウザとサーバー間の全二重通信機能を提供します。従来の HTTP リクエストと比較して、Websocket は遅延が低く効率が高いため、リアルタイム通信シナリオに適しています。
2. Websocket サーバーを構築する
まず、音声通話とビデオ通話のリクエストを処理するために Websocket サーバーを構築する必要があります。 Java EE で WebSocket API を使用するか、Jetty などのサードパーティ ライブラリを使用するかを選択できます。以下は、Java EE で WebSocket API を使用してサーバーを設定するためのサンプル コードです。
import javax.websocket.*; import javax.websocket.server.ServerEndpoint; import java.io.IOException; import java.util.HashSet; import java.util.Set; @ServerEndpoint("/video-call") public class VideoCallServer { private static Set<Session> sessions = new HashSet<>(); @OnOpen public void onOpen(Session session) { sessions.add(session); } @OnMessage public void onMessage(String message, Session session) throws IOException { for (Session s : sessions) { if (!s.equals(session)) { s.getBasicRemote().sendText(message); } } } @OnClose public void onClose(Session session) { sessions.remove(session); } }
上記のコードは、/video-call
という名前の WebSocket サーバー エンドポイントを作成し、## を実装します。 #onOpen、
onMessage、および
onClose メソッドは、接続、メッセージの送受信、および接続の終了のロジックを処理します。
<!DOCTYPE html> <html> <head> <title>视频通话</title> </head> <body> <video id="local-video" autoplay></video> <video id="remote-video" autoplay></video> <script> var localVideo = document.getElementById("local-video"); var remoteVideo = document.getElementById("remote-video"); // 获取本地媒体流,即摄像头和麦克风的输入 navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia; navigator.getUserMedia({ video: true, audio: true }, function(localStream) { // 在本地视频元素上显示本地媒体流 localVideo.srcObject = localStream; var serverUrl = "ws://localhost:8080/video-call"; var websocket = new WebSocket(serverUrl); websocket.onopen = function(event) { // 将本地媒体流发送到服务器 websocket.send(JSON.stringify({ type: "stream", stream: localStream })); }; websocket.onmessage = function(event) { var data = JSON.parse(event.data); if (data.type === "stream") { // 在远程视频元素上显示远程媒体流 remoteVideo.srcObject = data.stream; } }; }, function(error) { console.log("获取本地媒体流失败:" + error); }); </script> </body> </html>
getUserMedia メソッドを使用して、ローカル カメラとマイクから入力を取得し、ローカル メディア ストリームをサーバーに送信します。ウェブソケット経由。同時に、サーバーから送信されたリモート メディア ストリームを受信し、対応する
http://localhost:8080/video-call にアクセスして、オンライン オーディオとビデオ通話。
以上がJava Websocket を使用してオンラインの音声通話とビデオ通話を実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。