m1dugh / native-sound-mixer

MIT License
25 stars 13 forks source link

Building for nwjs #5

Closed robtoll closed 3 years ago

robtoll commented 3 years ago

Hi there - bit off topic here but would love to build this for nwjs.

I'm trying to build using prebuild. Bit baffled really!

Any help would be well appreciated.

Thanks

robtoll commented 3 years ago

Success...

I was stuck on this for ages, then solved it 5 mins after opening the issue!

Sorry mark this as closed.

If anyone wants to know how to build for nwjs (windows only) I can explain, but it's quite convoluted. I used node 16.0.0, and installed prebuild, node-gyp and nw-gyp globally (-g).

Building as is shows errors in the cpp source. GetEndpointMute and GetAudioSessionMute functions need to be changed.

Change line 289 and 290 from bool mute = false; HRESULT res = pEndpointVolume->GetMute(&(BOOL)mute); To BOOL mute = false; HRESULT res = pEndpointVolume->GetMute(&mute);

And Line 441 from bool mute = false; HRESULT res = pSessionVolume->GetMute(&(BOOL)mute); To BOOL mute = false; HRESULT res = pSessionVolume->GetMute(&mute);

Then run... node-gyp configure --msvs_version=2017 It won't work with python 3 installed, unless you install and specifically point to python 2.7

To build for nwjs run... prebuild -t 0.51.0 -r node-webkit

If it fails and complains about missing nw.lib, go to the nwjs site and download the files nw.lib and node.lib https://dl.nwjs.io/v0.51.0/x64/ Check the path that it errors with and put the files there.

Substitute 0.51.0 with whichever version of nwjs you're using.

Hope this helps someone!