Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <!DOCTYPE html>
- <html>
- <head>
- <title></title>
- <script>
- var configuration = { "iceServers": [{ "url": "stun:23.21.150.121" }] };
- var pc;
- var str;
- var ws = new WebSocket("ws://localhost:8182/");
- ws.binaryType = "arraybuffer";
- ws.onmessage = e => {
- if(e.data.constructor.name == "String") {
- try {
- var message = JSON.parse(e.data);
- switch (message.type) {
- case "init":
- var RTCPeerConnection = window.RTCPeerConnection || window.webkitRTCPeerConnection || window.mozRTCPeerConnection;
- var RTCI = window.RTCPeerConnection || window.webkitRTCPeerConnection || window.mozRTCPeerConnection;
- navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia;
- pc = new RTCPeerConnection(configuration);
- pc.onicecandidate = function (evt) {
- console.log("onicecandidate", evt);
- if(evt.candidate) {
- ws.send(JSON.stringify({ type: "icecandidate", candidate: evt.candidate }));
- }
- };
- pc.onaddstream = function (evt) {
- console.log("Adding stream…", evt.stream);
- var element = document.getElementById("stream");
- element.src = webkitURL.createObjectURL(evt.stream);
- };
- pc.onopen = function (evt) {
- console.log("onopen");
- };
- pc.onremovestream = function (evt) {
- console.log("onremovestream");
- };
- console.log("um");
- navigator.getUserMedia({ "audio": true }, function (stream) {
- console.log("stream", stream);
- str = stream;
- pc.addStream(stream);
- pc.createOffer(function (desc) {
- console.log("desc", desc);
- pc.setLocalDescription(desc);
- ws.send(JSON.stringify({ type: "sdp", desc: desc }));
- }, function (error) { console.log(error); });
- }, function (error) { console.log(error); });
- break;
- case "icecandidate":
- pc.addIceCandidate(new RTCIceCandidate(message.candidate));
- break;
- case "answer":
- pc.setRemoteDescription(new RTCSessionDescription(message.desc));
- break;
- }
- } catch (e) {
- console.log("not JSON", e);
- }
- }
- };
- ws.onopen = () => ws.send(JSON.stringify({ type: "login", username: "rschuh", password: "asdnajkshdas" }));
- </script>
- </head>
- <body>
- <audio id="stream" autoplay="autoplay" />
- </body>
- </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement