인터넷 기술의 빠른 개발로 실시간 오디오 및 비디오 커뮤니케이션은 다양한 응용 프로그램에 중요한 요구가되었습니다. 개방형 실시간 웹 통신 기술로서 WEBRTC를 통해 브라우저는 플러그인없이 오디오 및 비디오 데이터의 포인트 간 전송을 실현할 수 있습니다. 이 기사는 PHP를 사용하여 WEBRTC 아키텍처에서 역할을 수행하여 전체 실시간 오디오 및 비디오 커뮤니케이션 기능을 달성하는 방법에 중점을 둘 것입니다.
WebRTC는 주로 미디어 스트림 캡처, 전송 및 처리의 세 부분으로 구성됩니다. WEBRTC 클라이언트는 주로 JavaScript를 사용하여이를 구현하지만 PHP는 서버 측 신호 기능에 사용될 수 있으며, 연결 정보를 교환하고 커뮤니케이션에서 양 당사자의 설립 프로세스를 조정하여 오디오 및 비디오 데이터의 원활한 전송을 보장합니다.
클라이언트에서 JavaScript의 getUsermedia 인터페이스를 사용하여 카메라 및 마이크의 미디어 스트림을 캡처하십시오.
navigator.mediaDevices.getUserMedia({audio: true, video: true})
.then(function(stream) {
// 캡처 된 미디어 스트림을 성공적으로 처리합니다
})
.catch(function(error) {
// 캡처 실패를 처리하십시오
});
PHP에서는 Exec 함수를 사용하여 Node.js와 같은 환경에서 JavaScript 스크립트를 호출하여 신호 프로세스의 보조 처리를 달성 할 수 있습니다.
<?php
$output = exec("node <path to your JavaScript file>");
echo $output;
?>
전송 단계는 WebRTC의 RTCPeerConnection 객체에 의존하여 브라우저간에 포인트 간 연결을 설정하고 오디오 및 비디오 데이터 전송을 실현합니다.
const peerConnection = new RTCPeerConnection();
peerConnection.addStream(stream);
// 만들고 보내십시오offer
peerConnection.createOffer().then(function(offer) {
return peerConnection.setLocalDescription(offer);
}).then(function() {
// 할 것이다offer카운터로 보내십시오
});
// 거래하십시오ICE후보 정보
peerConnection.onicecandidate = function(event) {
// 보내다ICE후보 정보
};
// 피어 미디어 스트림을받습니다
peerConnection.onaddstream = function(event) {
const stream = event.stream;
// 거래하십시오接收到的媒体流
};
PHP 서버는 일반적으로 WebSocket 또는 HTTP 인터페이스를 사용하여 신호 데이터 전송을 완료하여 연결의 정상적인 설정 및 유지 보수를 보장합니다.
클라이언트의 미디어 스트리밍은 HTML5를 통해 전달할 수 있습니다. 그리고 재생 태그 :
<video autoplay></video>
<script>
const videoElement = document.querySelector('video');
videoElement.srcObject = stream;
</script>
캡처 된 미디어 스트림을 JavaScript를 통해 비디오 요소에 바인딩하여 실시간 재생 효과를 달성하십시오.
PHP의 서버 측 처리 기능과 WEBRTC의 강력한 실시간 통신 메커니즘을 결합한 개발자는 완전한 기능으로 실시간 오디오 및 비디오 커뮤니케이션 애플리케이션을 실현할 수 있습니다. 이 기사는 샘플 코드를 통한 미디어 스트림 캡처, 전송 및 처리의 주요 링크를 보여 주며 프로젝트에 대한 실질적인 참조를 제공하기를 희망합니다.