एचटीएमएल 5 - वेब आरटीसी
वर्ल्ड वाइड वेब कंसोर्टियम (W3C) द्वारा शुरू किया गया वेब आरटीसी। यह वॉयस कॉलिंग, वीडियो चैट और पी 2 पी फाइल शेयरिंग के लिए ब्राउज़र-टोबोसेर एप्लिकेशन का समर्थन करता है।
अगर आप कोशिश करना चाहते हैं? क्रोम, ओपेरा और फ़ायरफ़ॉक्स के लिए उपलब्ध वेब आरटीसी। शुरू करने के लिए एक अच्छी जगह यहाँ पर सरल वीडियो चैट अनुप्रयोग है । वेब आरटीसी तीन एपीआई को नीचे दिखाए अनुसार लागू करता है -
MediaStream - उपयोगकर्ता के कैमरे और माइक्रोफ़ोन तक पहुंच प्राप्त करें।
RTCPeerConnection - ऑडियो या वीडियो कॉलिंग की सुविधा प्राप्त करें।
RTCDataChannel - सहकर्मी से सहकर्मी संचार तक पहुंच प्राप्त करें।
MediaStream
MediaStream मीडिया की सिंक्रनाइज़ स्ट्रीम का प्रतिनिधित्व करता है, उदाहरण के लिए, HTML5 डेमो प्लेयर में HTML5 वीडियो प्लेयर पर क्लिक करें या फिर यहाँ क्लिक करें ।
उपरोक्त उदाहरण में stream.getAudioTracks () और stream.VideoTracks () हैं। यदि कोई ऑडियो ट्रैक नहीं है, तो यह एक खाली सरणी देता है और यह वीडियो स्ट्रीम की जांच करेगा, यदि वेबकैम जुड़ा हुआ है, स्ट्रीम .getVideoTracks () एक MediaStreamTrack का एक सरणी देता है जो वेब कैमरा से स्ट्रीम का प्रतिनिधित्व करता है। एक सरल उदाहरण चैट एप्लिकेशन है, एक चैट एप्लिकेशन वेब कैमरा, रियर कैमरा, माइक्रोफोन से स्ट्रीम प्राप्त करता है।
MediaStream का नमूना कोड
function gotStream(stream) {
window.AudioContext = window.AudioContext || window.webkitAudioContext;
var audioContext = new AudioContext();
// Create an AudioNode from the stream
var mediaStreamSource = audioContext.createMediaStreamSource(stream);
// Connect it to destination to hear yourself
// or any other node for processing!
mediaStreamSource.connect(audioContext.destination);
}
navigator.getUserMedia({audio:true}, gotStream);
स्क्रीन कैप्चर
यह Chrome ब्राउज़र में MediaStreamSource के साथ भी संभव है और इसके लिए HTTPS की आवश्यकता है। यह सुविधा अभी ओपेरा में उपलब्ध नहीं है। यहाँ पर नमूना डेमो उपलब्ध है
सत्र नियंत्रण, नेटवर्क और मीडिया जानकारी
वेब आरटीसी को ब्राउज़रों के बीच सहकर्मी से सहकर्मी संचार की आवश्यकता थी। इस तंत्र को सिग्नलिंग, नेटवर्क जानकारी, सत्र नियंत्रण और मीडिया जानकारी की आवश्यकता होती है। वेब डेवलपर्स SIP या XMPP या किसी भी दो तरह के संचार जैसे ब्राउज़रों के बीच संवाद करने के लिए विभिन्न तंत्र चुन सकते हैं। XHR का एक नमूना उदाहरण यहाँ है ।
नमूना बनाने का कोड कोडनैसलिंग चैनल ()
var signalingChannel = createSignalingChannel();
var pc;
var configuration = ...;
// run start(true) to initiate a call
function start(isCaller) {
pc = new RTCPeerConnection(configuration);
// send any ice candidates to the other peer
pc.onicecandidate = function (evt) {
signalingChannel.send(JSON.stringify({ "candidate": evt.candidate }));
};
// once remote stream arrives, show it in the remote video element
pc.onaddstream = function (evt) {
remoteView.src = URL.createObjectURL(evt.stream);
};
// get the local stream, show it in the local video element and send it
navigator.getUserMedia({ "audio": true, "video": true }, function (stream) {
selfView.src = URL.createObjectURL(stream);
pc.addStream(stream);
if (isCaller)
pc.createOffer(gotDescription);
else
pc.createAnswer(pc.remoteDescription, gotDescription);
function gotDescription(desc) {
pc.setLocalDescription(desc);
signalingChannel.send(JSON.stringify({ "sdp": desc }));
}
});
}
signalingChannel.onmessage = function (evt) {
if (!pc)
start(false);
var signal = JSON.parse(evt.data);
if (signal.sdp)
pc.setRemoteDescription(new RTCSessionDescription(signal.sdp));
else
pc.addIceCandidate(new RTCIceCandidate(signal.candidate));
};