Skip to content

Commit 740912f

Browse files
author
hoang.tran12
committed
.
1 parent ac40b83 commit 740912f

File tree

2 files changed

+31
-111
lines changed

2 files changed

+31
-111
lines changed

public/music-visualizer/main.js

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -55,18 +55,23 @@ function draw() {
5555

5656
function mousePressed() {
5757
if (!stream) {
58-
getStreamFromOtherTab()
59-
.then((_) => {
60-
stream = _;
61-
console.log("stream: ", stream);
62-
connectStreamToP5(stream);
63-
})
64-
.catch((e) => {
65-
console.log("ERROR: ", e);
66-
});
58+
getStreamAndPlay();
6759
}
6860
}
6961

62+
window.ufs_call_init = getStreamAndPlay;
63+
function getStreamAndPlay() {
64+
getStreamFromOtherTab()
65+
.then((_) => {
66+
stream = _;
67+
console.log("stream: ", stream);
68+
connectStreamToP5(stream);
69+
})
70+
.catch((e) => {
71+
console.log("ERROR: ", e);
72+
});
73+
}
74+
7075
function windowResized() {
7176
resizeCanvas(windowWidth, windowHeight);
7277
}

scripts/_test.js

Lines changed: 17 additions & 102 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,4 @@
1-
import {
2-
getCurrentTab,
3-
runScriptInTab,
4-
waitForTabToLoad,
5-
} from "./helpers/utils.js";
1+
import { runScriptInTab, waitForTabToLoad } from "./helpers/utils.js";
62

73
export default {
84
icon: "",
@@ -25,105 +21,24 @@ export default {
2521
// https://stackoverflow.com/questions/66217882/properly-using-chrome-tabcapture-in-a-manifest-v3-extension
2622
// https://groups.google.com/a/chromium.org/g/chromium-extensions/c/ffI0iNd79oo
2723
// https://github.dev/GoogleChrome/chrome-extensions-samples/api-samples/tabCapture
28-
29-
onClick: async () => {
30-
// https://developer.chrome.com/docs/extensions/how-to/web-platform/screen-capture
31-
const stream = await navigator.mediaDevices.getDisplayMedia({
32-
video: {
33-
displaySurface: "browser",
34-
},
35-
audio: {
36-
suppressLocalAudioPlayback: false,
37-
},
38-
preferCurrentTab: false,
39-
selfBrowserSurface: "exclude",
40-
systemAudio: "include",
41-
surfaceSwitching: "include",
42-
monitorTypeSurfaces: "include",
24+
// https://developer.chrome.com/docs/extensions/how-to/web-platform/screen-capture
25+
26+
onClickExtension: async () => {
27+
const { tabs } = await chrome.windows.create({
28+
url: "http://127.0.0.1:5500/public/music-visualizer/index.html",
29+
type: "popup",
30+
width: 800,
31+
height: 300,
4332
});
33+
const tab = tabs[0];
4434

45-
drawVisualizer(stream);
46-
47-
// const streamId = await UfsGlobal.Extension.runInBackground(
48-
// "chrome.tabCapture.getMediaStreamId"
49-
// );
50-
// navigator.webkitGetUserMedia(
51-
// {
52-
// audio: {
53-
// mandatory: {
54-
// chromeMediaSource: "tab", // The media source must be 'tab' here.
55-
// chromeMediaSourceId: streamId,
56-
// },
57-
// },
58-
// video: false,
59-
// },
60-
// function (stream) {
61-
// console.log(stream);
62-
// },
63-
// function (error) {
64-
// console.error(error);
65-
// }
66-
// );
67-
},
68-
69-
_onClickExtension: async () => {
70-
try {
71-
// const url = "http://127.0.0.1:5500/public/music-visualizer/index.html";
72-
const url = await chrome.runtime.getURL(
73-
"/public/music-visualizer/index.html"
74-
);
75-
const currentTab = await getCurrentTab();
76-
const newTab = await chrome.tabs.create({
77-
url: url,
78-
active: false,
79-
});
80-
await waitForTabToLoad(newTab.id);
81-
82-
const streamId = await chrome.tabCapture.getMediaStreamId({
83-
targetTabId: currentTab.id,
84-
consumerTabId: newTab.id,
85-
});
86-
87-
chrome.tabs.update(newTab.id, {
88-
url: url + "?streamId=" + streamId,
89-
});
35+
await waitForTabToLoad(tab.id);
9036

91-
// runScriptInTab({
92-
// tabId: newTab.id,
93-
// func: (streamId) => {
94-
// start(streamId);
95-
// },
96-
// args: [streamId],
97-
// });
98-
} catch (e) {
99-
alert(e);
100-
}
101-
},
102-
103-
_onClickContentScript: async () => {
104-
try {
105-
const currentTabId = await UfsGlobal.Extension.runInBackground(
106-
"utils.getCurrentTabId"
107-
);
108-
109-
const url = await UfsGlobal.Extension.getURL("/scripts/_test.html");
110-
const { tabs } = await UfsGlobal.Extension.runInBackground(
111-
"chrome.windows.create",
112-
[{ url, height: 400, width: 800 }]
113-
);
114-
const tab = tabs[0];
115-
116-
await UfsGlobal.Extension.waitForTabToLoad(tab.id);
117-
118-
UfsGlobal.Extension.runInBackground("chrome.tabs.sendMessage", [
119-
tab.id,
120-
{
121-
targetTabId: currentTabId,
122-
consumerTabId: tab.id,
123-
},
124-
]);
125-
} catch (e) {
126-
console.log(e);
127-
}
37+
runScriptInTab({
38+
func: () => {
39+
window.ufs_call_init?.();
40+
},
41+
tabId: tab.id,
42+
});
12843
},
12944
};

0 commit comments

Comments
 (0)