Playing Audio in Electron from main process

Viewed 7659

im developing an electron app, which needs to play a sound in case of incoming message from webSocket connection. The websocket is handled on the main process, as the user switches pages during usage. I can not play the sound from the renderer, as i don't know in which page the user is at the moment, the webSocket message comes in (in worst case he is in between to pages while navigating).

Is there chance to play back audio on main process? The audio file is stored locally within the project file structure.

Kind regards,

BoxSon

2 Answers

Found a workaround to solve this by my own:

  • create and open a hidden window.
  • In this window load a HTML5 audio player
  • via IPC send message to this hidden window from main to play a sound.

Little bit of effort but works like a charm.

Don't forget to destroy the hidden window on application closure (application won't close if you forget this step).

I found this simple npm package for playing sounds without renderer, and you can easily include it to your electron project.

Firstly, you need to install by npm install sound-play or save directly to your project with npm install sound-play --save and

initialize by this

const sound = require("sound-play");

and to play file just one line of code

sound.play("file.mp3");

You can learn more on the official site through this link

Related