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