HTML5 Web RTC

Web RTC introdusert av World Wide Web Consortium (W3C). Som støtter browser-til-browser applikasjoner for talesamtaler, videochat, og P2P fildeling.

Hvis du ønsker å prøve ut? web RTC tilgjengelig for Chrome, opera og firefox. Et godt sted å starte er det enkle videochat søknad på here.Web RTC implementerer tre API som vist nedenfor & minus;

Media
& minus; få tilgang til brukerens kamera og mikrofon.

RTCPeerConnection
& minus; få tilgang til lyd- eller videosamtaler anlegget

RTCDataChannel Anmeldelser og minus.; få tilgang til peer-to-peer kommunikasjon

Media

. Den Media representerer synkroniserte strømmer av media, for eksempel, klikk på HTML5 videospiller i HTML5 demo seksjon eller annet klikk her.

Eksempelet ovenfor inneholder stream.getAudioTracks () og stream.VideoTracks (). Hvis det er noen lydspor, returnerer den en tom matrise og det vil sjekke videostrøm, hvis webkamera koblet, stream.getVideoTracks () returnerer en matrise av ett MediaStreamTrack representerer stream fra webkameraet. Et enkelt eksempel er chat programmer, en chat programmer får strøm fra web-kamera, bak kamera, mikrofon.

Eksempelkode for Media
funksjon gotStream (stream) {window.AudioContext = window.AudioContext || window.webkitAudioContext; Var audioContext = new AudioContext (); //Opprett en AudioNode fra bekken Var mediaStreamSource = audioContext.createMediaStreamSource (stream); //Koble den til bestemmelses å høre deg selv //eller annen node for behandling! mediaStreamSource.connect (audioContext.destination);} navigator.getUserMedia ({lyd: true} gotStream);
Screen capture

Det er også mulig i chrome nettleser med mediaStreamSource og det kreves HTTPS. Denne funksjonen er ikke tilgjengelig i opera. Sample demo er tilgjengelig på her

Session Control, Nettverk & amp; Media Information

Web RTC nødvendig peer-to-peer kommunikasjon mellom nettlesere. Denne mekanismen nødvendig signalering, nettverksinformasjon, økt kontroll og medieinformasjon. Webutviklere kan velge annen mekanisme for å kommunisere mellom nettlesere som SIP eller XMPP eller noen toveis communications.A sample eksempel på XHR er her.

Eksempelkode for createSignalingChannel ()
Var signalingChannel = createSignalingChannel (); Var pc; Var konfigurasjon = ...; //run start (true) for å sette i gang en callfunction start (isCaller) {pc = ny RTCPeerConnection (konfigurasjon); //Sende isen kandidater til andre peer pc.onicecandidate = function (evt) {signalingChannel.send (JSON.stringify ({"kandidat": evt.candidate})); }; //Når ekstern strøm kommer, viser den i den eksterne video element pc.onaddstream = function (evt) {remoteView.src = URL.createObjectURL (evt.stream); }; //Få den lokale bekken, vise det på den lokale video element og sende den navigator.getUserMedia ({"audio": true, "video": true}, funksjon (stream) {selfView.src = URL.createObjectURL (stream) ; pc.addStream (stream); if (isCaller) pc.createOffer (gotDescription), ellers pc.createAnswer (pc.remoteDescription, gotDescription), funksjon gotDescription (synkende) {pc.setLocalDescription (synkende); signalingChannel.send (JSON. stringify ({"SDP": desc}));}}); } SignalingChannel.onmessage = function (evt) {if start (falsk) (pc!); Var signal = JSON.parse (evt.data); if (signal.sdp) pc.setRemoteDescription (ny RTCSessionDescription (signal.sdp)); annet pc.addIceCandidate (ny RTCIceCandidate (signal.candidate));};



Previous: