fix: autoplay sound overlapping with main window

This created some distortion because while we were hiding the autoplay
window, this would not stop it's media. It's better to stop the media
completely
This commit is contained in:
talksik
2026-04-08 11:06:49 -07:00
parent 5f80bd15d5
commit 382f195847
4 changed files with 15 additions and 0 deletions
+7
View File
@@ -10,6 +10,13 @@ export function AutoplayApp() {
return window.electronAutoplay.onPlay((p) => setPayload(p));
}, []);
useEffect(() => {
return window.electronAutoplay.onStop(() => {
mediaRef.current?.pause();
setPayload(null);
});
}, []);
const stop = useCallback(() => {
mediaRef.current?.pause();
setPayload(null);
+1
View File
@@ -27,6 +27,7 @@ declare global {
dismiss: () => void;
navigate: (data: { networkId: string; streamId: string }) => void;
onPlay: (callback: (payload: AutoplayPayload) => void) => () => void;
onStop: (callback: () => void) => () => void;
onNavigate: (callback: (data: { networkId: string; streamId: string }) => void) => () => void;
};
electronLink: {
+2
View File
@@ -184,10 +184,12 @@ ipcMain.on('autoplay:play', (_event, payload) => {
});
ipcMain.on('autoplay:dismiss', () => {
autoplayWindow?.webContents.send('autoplay:stop');
autoplayWindow?.hide();
});
ipcMain.on('autoplay:navigate', (_event, data) => {
autoplayWindow?.webContents.send('autoplay:stop');
autoplayWindow?.hide();
if (mainWindow) {
mainWindow.webContents.send('autoplay:navigate', data);
+5
View File
@@ -29,6 +29,11 @@ contextBridge.exposeInMainWorld('electronAutoplay', {
ipcRenderer.on('autoplay:play', handler);
return () => { ipcRenderer.removeListener('autoplay:play', handler); };
},
onStop: (callback: () => void) => {
const handler = () => callback();
ipcRenderer.on('autoplay:stop', handler);
return () => { ipcRenderer.removeListener('autoplay:stop', handler); };
},
onNavigate: (callback: (data: { networkId: string; streamId: string }) => void) => {
const handler = (_event: Electron.IpcRendererEvent, data: { networkId: string; streamId: string }) => callback(data);
ipcRenderer.on('autoplay:navigate', handler);