| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- "use strict";
- const localMedia = document.getElementById("my-video");
- localMedia.muted = true;
- navigator.mediaDevices.getUserMedia({
- audio: true,
- video: true,
- }).then((localStream) => {
- localMedia.srcObject = localStream;
- grid.localStream = localStream;
- localMedia.addEventListener("loadedmetadata", () => localMedia.play());
- }).catch((error) => {
- peer.error = error.message;
- });
- const callee = new Vue({
- el: "#callee",
- data: {
- calleeId: "",
- },
- methods: {
- addPeer: () => {
- if (callee.calleeId && !grid.peers.includes(callee.calleeId))
- grid.peers.push(callee.calleeId);
- },
- },
- });
- const grid = new Vue({
- el: "#grid",
- data: {
- localStream: undefined,
- peers: [],
- },
- methods: {
- makeCall: (peerId) => {
- let call = peer.peer.call(peerId, grid.localStream);
- let video = document.getElementById(call.peer);
- call.on("stream", (remoteStream) => {
- video.srcObject = remoteStream;
- video.addEventListener("loadedmetadata", () => video.play());
- });
- },
- },
- });
- const peer = new Vue({
- el: "#peer",
- data: {
- clientId: "",
- error: "",
- peer: new Peer(undefined, {
- host: "localhost",
- key: "testingkey",
- path: "/peerjs/conference",
- port: 3000,
- }),
- },
- });
- peer.peer.on("close", () => peer.clientId = "");
- peer.peer.on("error", (error) => peer.error = error.message);
- peer.peer.on("open", () => peer.clientId = peer.peer.id);
- peer.peer.on("call", (call) => {
- call.answer(grid.localStream);
- let video = document.getElementById(call.peer);
- call.on("stream", (remoteStream) => {
- video.srcObject = remoteStream;
- video.addEventListener("loadedmetadata", () => video.play());
- });
- });
|