I also encounter the same problem, and I found that the volume does not matter reset when the setVolume method is called outside the READY event. This is why the setVolume button on the SC api playground works, as it is called externally. But there is another problem: when the next track in the playlist is loaded into the widget, it resets the volume to full and, as a result, stuns the user.
I used a hacky workaround until it is fixed.
Set a new PLAY_PROGRESS event and call the method inside it.
widget.bind(SC.Widget.Events.PLAY_PROGRESS, function() { widget.setVolume(10); });
The setVolume method will be constantly called when playing a track. Not perfect, but it works.
If you have a slider for the volume, you can use it instead:
widget.bind(SC.Widget.Events.PLAY_PROGRESS, function() { var vol = jQuery('.slider').val(); widget.setVolume(vol); });
source share