obs-websocket-community-projects / obs-websocket-js

Consumes https://github.com/obsproject/obs-websocket
MIT License
657 stars 95 forks source link

SetVolume not properly setting volume #301

Open VideoGameRoulette opened 1 year ago

VideoGameRoulette commented 1 year ago

Description:

SetVolume event always maxes out any audio input I attempt to modify the value for regardless of values being sent it always seems to max the selected volume. This happens even with useDecibel option as well.

Steps

Versions Used:

<label for="volume" className="block text-sm font-medium text-white">{feed?.name}: {feed?.volume}</label>
<input
    min={-101.0}
    max={26.0}
    step={0.1}
    id="volume"
    name="volume"
    type="range"
    className="w-full h-2 bg-gray-200 rounded-lg appearance-none cursor-pointer dark:bg-gray-700"
    defaultValue={feed?.volume}
    onMouseUp={e => SetVolume(feed, e)}
/>
SetVolume = (src, e) => {
    const { name } = src;
    console.log("Volume Changed To:" e.target.value);
    this.obs.socket.send('SetVolume', {
      source: name,
      volume: e.target.value,
    });
  }

log Volume Changed To: 0.1

MuhammedOzby commented 1 year ago

This is using V5.0.2:

Get input:

const inputs = await OBS.call("GetSpecialInputs");

Set input volume:

OBS.call("SetInputVolume", {
  inputName: data[0],
  inputVolumeDb: typeof val == "number" ? val : val[0],
});

And, i am using only integer.