Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

294
Vistas
Electron js usa desktopCapture fuera de main.js

Tengo una aplicación en la que necesito capturar el escritorio al hacer clic en el botón. Todos los tutoriales relevantes en YouTube tienen entre 1 y 2 años. El módulo desktopCapturer solo está disponible en el componente principal, y no puedo entender cómo usarlo desde allí para capturar el clic del botón y comenzar a grabar. Anteriormente, el módulo desktopCapturer también estaba disponible en el componente de procesamiento, como he oído, pero ahora solo está disponible en el componente principal.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

mira esto: https://www.electronjs.org/docs/latest/api/desktop-capturer

puede activar una captura de escritorio enviando un mensaje ipc desde su proceso de representación (usando invocar / enviar asíncrono y eventos) a su proceso principal.

El siguiente ejemplo capturará la ventana de su aplicación Electron:

  1. en su proceso principal:
 ipcMain.handle('get-sources', () => { return desktopCapturer.getSources({ types: ['window', 'screen'] }).then(async sources => { for (const source of sources) { if (source.name === 'YOUR ELECTRON APP NAME' && mainWindow) { return source.id; } } }) });
  1. en su aplicación web (proceso de representación):
 const handleStream = (stream: any) => { const video = document.querySelector('video') video!.srcObject = stream video!.onloadedmetadata = () => video!.play() } const handleError = (e: any) => { console.log(e) } const getResource = async () => { const sourceId = await window.electron.getSources(); try { const stream = await navigator.mediaDevices.getUserMedia({ audio: false, video: { mandatory: { chromeMediaSource: 'desktop', chromeMediaSourceId: sourceId, minWidth: 1280, maxWidth: 1280, minHeight: 720, maxHeight: 720 } } }) handleStream(stream) } catch (e) { handleError(e) } } getResource();
  1. asegúrese de tener una etiqueta html de video en su DOM:
 <video width="750" height="500" controls > <source src="" type="video/mp4"/> </video>
  1. no olvide actualizar sus archivos de precarga tanto en su electrón como en su aplicación web. por ejemplo:
 declare global { interface Window { electron: { getSources: () => Promise<string>, }; } }

y en electrones

 contextBridge.exposeInMainWorld('electron', { getSources: () => ipcRenderer.invoke('get-sources'), });
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda