forked from hibas123/ScreenSharingThing
Switch direction of link sharing
This commit is contained in:
parent
a9767da606
commit
3ab6fc97e9
@ -2,7 +2,7 @@
|
|||||||
"name": "ScreenSharingThing",
|
"name": "ScreenSharingThing",
|
||||||
"packageManager": "yarn@3.1.1",
|
"packageManager": "yarn@3.1.1",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"start": "ts-node src/index.ts"
|
"dev": "ts-node src/index.ts"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/node": "^16.11.11",
|
"@types/node": "^16.11.11",
|
||||||
|
@ -26,14 +26,14 @@
|
|||||||
<h2>Your ID: <span id="streamId"></span></h2>
|
<h2>Your ID: <span id="streamId"></span></h2>
|
||||||
<div id="streamURLCont">
|
<div id="streamURLCont">
|
||||||
<h2>Connect URL: <a id="streamURL"></a></h2>
|
<h2>Connect URL: <a id="streamURL"></a></h2>
|
||||||
|
<button id="startStramBTN">Start Stream</button>
|
||||||
</div>
|
</div>
|
||||||
<div id="connectToCont">
|
<div id="connectToCont">
|
||||||
<h2>Connecting to: <span id="connectToID"></span></h2>
|
<h2>Connecting to: <span id="connectToID"></span></h2>
|
||||||
<button id="startStramBTN">Start Stream</button>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<video id="localVideo" style="width: 100%" controls></video>
|
<video id="localVideo" style="width: 100%" controls muted></video>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -78,6 +78,7 @@ var peer = new Peer({
|
|||||||
});
|
});
|
||||||
|
|
||||||
function bitrateTransform(sdp) {
|
function bitrateTransform(sdp) {
|
||||||
|
// return sdp;
|
||||||
var arr = sdp.split("\r\n");
|
var arr = sdp.split("\r\n");
|
||||||
arr.forEach((str, i) => {
|
arr.forEach((str, i) => {
|
||||||
if (/^a=fmtp:\d*/.test(str)) {
|
if (/^a=fmtp:\d*/.test(str)) {
|
||||||
@ -96,21 +97,21 @@ function bitrateTransform(sdp) {
|
|||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
let currentStream = undefined;
|
let currentStream = undefined;
|
||||||
peer.on("open", (id) => {
|
|
||||||
console.log("ID", id);
|
|
||||||
sf.streamId_text = id;
|
|
||||||
let url = new URL(window.location.href);
|
|
||||||
url.searchParams.set("id", id);
|
|
||||||
sf.streamURL_text = url.href;
|
|
||||||
sf.streamURL_href = url.href;
|
|
||||||
|
|
||||||
let con = peer.connect(connectToId);
|
let connections = [];
|
||||||
con.on("data", console.log);
|
|
||||||
con.on("open", () => con.send("Hello"));
|
|
||||||
|
|
||||||
if (connectToId) {
|
function sendStream(id) {
|
||||||
|
const conn = peer.call(id, currentStream, {
|
||||||
|
sdpTransform: bitrateTransform,
|
||||||
|
});
|
||||||
|
|
||||||
|
conn.on("stream", console.log);
|
||||||
|
conn.on("close", console.log);
|
||||||
|
conn.on("error", console.log);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!connectToId) {
|
||||||
sf.startStramBTN_click = () => {
|
sf.startStramBTN_click = () => {
|
||||||
navigator.mediaDevices
|
navigator.mediaDevices
|
||||||
.getDisplayMedia({
|
.getDisplayMedia({
|
||||||
@ -118,25 +119,43 @@ peer.on("open", (id) => {
|
|||||||
})
|
})
|
||||||
.then((stream) => {
|
.then((stream) => {
|
||||||
if (currentStream) {
|
if (currentStream) {
|
||||||
currentStream.getTracks().forEach(track => track.stop())
|
currentStream.getTracks().forEach((track) => track.stop());
|
||||||
}
|
}
|
||||||
currentStream = stream;
|
currentStream = stream;
|
||||||
let v = sf.localVideo;
|
let v = sf.localVideo;
|
||||||
v.srcObject = stream;
|
v.srcObject = stream;
|
||||||
v.play();
|
v.play();
|
||||||
const conn = peer.call(connectToId, stream, {
|
|
||||||
sdpTransform: bitrateTransform,
|
connections.forEach((id) => {
|
||||||
|
sendStream(id);
|
||||||
});
|
});
|
||||||
conn.on("stream", console.log);
|
|
||||||
conn.on("close", console.log);
|
|
||||||
conn.on("error", console.log);
|
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
peer.on("open", (id) => {
|
||||||
|
console.log("ID", id);
|
||||||
|
sf.streamId_text = id;
|
||||||
|
|
||||||
|
let url = new URL(window.location.href);
|
||||||
|
url.searchParams.set("id", id);
|
||||||
|
sf.streamURL_text = url.href;
|
||||||
|
sf.streamURL_href = url.href;
|
||||||
|
|
||||||
|
if (connectToId) {
|
||||||
|
let con = peer.connect(connectToId);
|
||||||
|
con.on("data", console.log);
|
||||||
|
con.on("open", () => con.send("Hello"));
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
peer.on("connection", (conn) => {
|
peer.on("connection", (conn) => {
|
||||||
console.log("connection", conn);
|
console.log("connection", conn);
|
||||||
conn.on("data", console.log);
|
conn.on("data", console.log);
|
||||||
|
connections.push(conn.peer);
|
||||||
|
if (currentStream) {
|
||||||
|
sendStream(conn.peer);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
peer.on("error", console.error);
|
peer.on("error", console.error);
|
||||||
|
Loading…
Reference in New Issue
Block a user