WebRTC client - setSinkId issue on Chrome 49



TL;DR: How can I upgrade electron to use Chrome 48?

Been doing a bit of experimenting with SipML and electron.
Got it working, you can call, talk, transfer…

Output device selection via setSinkId is buggy.
It works for a locally played audio file, but for remote audio element (blob:…) when trying to useSetSinkId it says: DOMException: The requested operation could be performed and was aborted

Got the same issue in Chrome 47, but after upgrading to Chrome 48 not so long ago it works flawlessly.

So, how can I upgrade electron to use Chrome 48? Is it a trivial task or something complex?
Does anybody know when could we expect electron upgraded to the new version officially?



You may want to look at the previous “Upgrade to Chrome XX” pull requests like this one:


This question is also answered in the FAQ https://github.com/atom/electron/blob/master/docs/faq/electron-faq.md#when-will-electron-upgrade-to-latest-chrome


Thx for replies. Seems electron community is really active, so easiest move would be to wait a week or so until new versions is integrated into electron…


This is actually great, I’m having the exact same issue and Chrome 48 will fix. Stupid setSinkId with blobs :slightly_smiling:


Electron is currently still on Chrome 47 right?

The FAQ mention the Chrome version is usually bumped within 1-2 weeks.

The Chromium release calendar states that 47 was released Oct 2nd 2015, which is well past the usual bumping time frame. Also I couldn’t find any issues/pr on electron github.

Does this mean there are other issues at play?


@zcbenz has been busy with life recently and hasn’t had the time to finish the upgrade to Chrome 48, so he may end up skipping 48 and upgrade directly to 49.


@enlight Yay we finally got the upgrade, but sinkId is still not working sadly ;(
@MarshallOfSound Did you manage to get it running properly?

I’ve found out the following:
Current Chrome version 49.0.2623.87 doesn’t support setSinkId for a device, but it supports using “default” or “communications”.
You can test the way it works in hangouts or here https://jsfiddle.net/rs9a3c31/9/
This is honestly enough, you can just set your headset to be the default output communications device and be done with it.

But our beloved Electron (Chrome/49.0.2623.75 Electron/0.37.2) doesn’t even support selecting “communications” :frowning:
setSinkId says success but no sound is coming out of the selected output device.

To test it out just load the fiddle using:



Another test reveals that it works on Windows 10 as expected, I was testing on Windows 8.1
You still can’t select the direct device, but communications works.


Just to finalize this if anybody runs into this problem. One final problem was the architecture.
32bit works ok, but 64x does not.