PageSourceSearch

https://www.webrtc-experiment.com/Canvas-Designer/dev/webrtc-handler.js

js webrtc-experiment.com collected 2026-10-01 12:18:18 UTC 2,299 bytes, 70 lines download raw bytes

1var webrtcHandler = {
2    createOffer: function(callback) {
3        var captureStream = document.getElementById('main-canvas').captureStream();
4        var peer = this.getPeer();
5
6        captureStream.getTracks().forEach(function(track) {
7            peer.addTrack(track, captureStream);
8        });
9
10        peer.onicecandidate = function(event) {
11            if (!event || !!event.candidate) {
12                return;
13            }
14
15            callback({
16                sdp: peer.localDescription.sdp,
17                type: peer.localDescription.type
18            });
19        };
20        peer.createOffer({
21            OfferToReceiveAudio: false,
22            OfferToReceiveVideo: false
23        }).then(function(sdp) {
24            peer.setLocalDescription(sdp);
25        });
26    },
27    setRemoteDescription: function(sdp) {
28        this.peer.setRemoteDescription(new RTCSessionDescription(sdp)).then(function() {
29            if (typeof setTemporaryLine === 'function') {
30                setTemporaryLine();
31            }
32        });
33    },
34    createAnswer: function(sdp, callback) {
35        var peer = this.getPeer();
36        peer.onicecandidate = function(event) {
37            if (!event || !!event.candidate) {
38                return;
39            }
40
41            callback({
42                sdp: peer.localDescription.sdp,
43                type: peer.localDescription.type
44            });
45        };
46        this.peer.setRemoteDescription(new RTCSessionDescription(sdp)).then(function() {
47            peer.createAnswer({
48                OfferToReceiveAudio: false,
49                OfferToReceiveVideo: true
50            }).then(function(sdp) {
51                peer.setLocalDescription(sdp);
52            });
53        });
54
55        peer.ontrack = function(event) {
56            callback({
57                stream: event.streams[0]
58            });
59        };
60    },
61    getPeer: function() {
62        var WebRTC_Native_Peer = window.RTCPeerConnection || window.webkitRTCPeerConnection || window.mozRTCPeerConnection;
63        var RTCSessionDescription = window.RTCSessionDescription || window.mozRTCSessionDescription;
64        var RTCIceCandidate = window.RTCIceCandidate || window.mozRTCIceCandidate;
65
66        var peer = new WebRTC_Native_Peer(null);
67        this.peer = peer;
68        return peer;
69    }
70};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.